有没有办法用Java绘制图片?

时间:2019-11-09 22:57:45

标签: java image swing jlabel

我知道必须有一个,但是如果我添加一个Label(应该是我的背景),然后在其上绘制(而不是在所有空间上绘制),则背景不会显示。我非常确定这是因为Java完全用标准的灰色来绘制它,但是我不知道如何告诉Java不要这样做。 setOpaque truefalse(两者相同)仅停止更新我不想再次绘制的像素(在重新绘制之后)。

1 个答案:

答案 0 :(得分:0)

通过覆盖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,然后进行自定义绘制。这样,所有绘画代码都位于一种方法中。

尝试两种方法,看看哪种方法满足您的确切要求。