有没有办法在 Java 的图片上作画?
Is there a way to paint on a picture in Java?
我知道必须有一个,但是如果我添加一个标签(应该是我的背景),然后在上面绘画(而不是在所有 space 上),背景会不露面。我很确定这是因为 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
}
阅读有关 Custom Painting 的 Swing 教程部分,了解更多信息和示例。
或者另一种选择是扩展 JPanel
并绘制 Image
,然后进行自定义绘制。这样所有的绘画代码都在一个方法中。
尝试两种方法,看看哪种方法能满足您的具体要求。
我知道必须有一个,但是如果我添加一个标签(应该是我的背景),然后在上面绘画(而不是在所有 space 上),背景会不露面。我很确定这是因为 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
}
阅读有关 Custom Painting 的 Swing 教程部分,了解更多信息和示例。
或者另一种选择是扩展 JPanel
并绘制 Image
,然后进行自定义绘制。这样所有的绘画代码都在一个方法中。
尝试两种方法,看看哪种方法能满足您的具体要求。