【发布时间】:2016-07-07 22:28:19
【问题描述】:
我是 Swing 的新手,我正在尝试显示一个 JPanel,其中包含一些图形。我绘制它们覆盖了类 Graphics 中的 PaintComponent 方法,但我希望它们中的每一个都有不同的颜色。我的问题是我只能设置JPanel的颜色,里面所有的图形颜色都是一样的。
有人知道我该怎么做吗?如果可能的话,无需为每张图片创建一个 JPanel。谢谢!
编辑:这是我的一段代码:
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.RED);
g.fillOval(524, 45, 34, 34);
g.fillOval(615, 45, 34, 34);
g.fillOval(396, 233, 34, 34);
g.fillOval(746, 233, 34, 34);
}
当然像这样我无法区分圆圈之间的差异,还有另一种方法来绘制它们之间的差异吗?
【问题讨论】:
-
请帮助我们通过显示您的相关代码并显示您为解决它而尝试做的事情,或者只是在您的代码尝试中让您感到困惑的事情来帮助您。最好能创建并发布minimal reproducible example 或sscce。请查看这些有价值的链接。
-
你可以使用
setColor(Color c)方法设置不同的颜色 -
请将您的代码作为对原始问题的编辑发布,而不是作为评论,因为这些信息太重要而不能被隐藏在 cmets 中,并且 cmets 不允许您格式化代码。另外,请再次阅读我提供的链接,因为您发布的代码似乎不足以满足我们的需要。
-
@HovercraftFullOfEels,重构是个好主意,但对于他正在做的事情可能有点过头了。听起来他现在才刚刚开始学习,所以一个很好的实验是先绘制某物,然后再将其分解为完整的 OO。
-
@HovercraftFullOfEels 我知道了,谢谢,我只是想在视觉上为自己做这件事,然后在我的代码中应用:)
标签: java swing graphics jpanel