我试图在JPanel
内绘制几个东西。我正在绘制形状(作品),我也想用JPAnel填充图片。
但是paintComponent()
只需要一个参数。当我有一些用于绘制形状的额外代码时,这会变得复杂。
我的paintComponent()方法目前是这样的:
public void paintComponent(Graphics g) {
g2 = (Graphics2D) g;
for (int i = 0; i < shapes.size(); i++) {
Shape s = (Shape) shapes.get(i);
if (s != null)
g2.draw(s);
}
}
我经常搜索,找不到办法。
有谁知道如何做到这一点,或者可能有一些解决方法?
答案 0 :(得分:1)
就像你绘制形状的方法一样,你需要保持对你想要在类中绘制的图像的引用,并以相同的方式引用它们。
以下是在paintComponent
内绘制图像的所有示例,主题是
Nb - 我可能误读了这个,但你永远不应该自己打电话给paintComponent
。它由Swing中的重绘引擎代表您调用
答案 1 :(得分:-1)
通常,在处理此类事情时,我只是转到GUI构建器。当我第一次学习Java时,我有一个项目要在一段时间内完成,并且无法弄清楚PaintComponent,所以我最终使用了NetBeans附带的GUI构建器。 根据您正在使用的IDE,它可能没有,所以如果您最终执行此操作,则可能必须切换到Eclipse或NetBeans等。否则,GUI构建器是解决PaintComponent和其他图形设计问题的一种非常简单的方法(只要您不反对使用生成的代码)。