我知道必须有一个,但是如果我添加一个Label(应该是我的backgrund),然后在其上绘制(而不是在所有空间上绘制),背景将不会显示。我很确定这是因为Java完全用标准的灰色覆盖了它,但是我不知道如何告诉Java不要这样做。 setOpaque(true和false(相同))仅停止更新我不想再次绘制的像素(重新绘制之后)。感谢您的帮助
自定义绘画(在任何组件上的绘画都通过重写paintComponent(...)
方法来完成。]
因此您可以扩展您的JLabel并添加自定义代码:
@Override protected void paintComponent(Graphics g) { super.paintComponent(g); // this will paint the label and its Icon // add custom code here }
阅读Swing教程的Custom Painting部分,以获取更多信息和示例。>
或另一种选择是扩展
JPanel
并绘制Image
,然后进行自定义绘制。这样,所有绘画代码都位于一种方法中。
尝试两种方法,看看哪种方法满足您的确切要求。