【发布时间】:2011-10-04 15:22:41
【问题描述】:
我想在 JPanel 上绘制图形。现在,我正在做的是,我使用paintComponent方法来定义绘图:
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillRect(10,10,100,100);
}
然后我在要放置图形的地方调用 repaint()。
但我想知道是否有一种方法可以将 Graphics 添加到 JPanel,就像添加组件一样,而无需使用此 paintComponent 方法:panel.add(myComponent)。我看到无法启动 Graphics 类型,但也许有另一种类型可以让我这样做。
我很确定很多 GUI(例如 FANG Engine)都有这个选项,但是我看到的所有 Swing 示例都使用这个方法。没有这个有什么建议吗?因为它有时会打乱我程序的整体设计。
提前致谢。
【问题讨论】:
-
@mKorbel,在我来到这里之前,我浏览了所有这些 API 和教程。你甚至读过我的问题吗?
-
@Emir: “它有时会搞乱我程序的整体设计。” 除非你知道为什么它搞砸了,否则我怀疑使用建议的替代方法时问题会持续存在。
-
@Emir:“你有没有阅读我的问题?” -1 我没有时间仔细阅读你的问题。如果你愿意,我会删除我的评论,而不是浏览细节。 (在你告诉我们之前,我们不知道你检查过,这是一个很好的建议。我们不是读心术的人。)
-
@Andew Thompson:请做。我已经处理这个问题一个星期了,在我来这里之前我阅读了所有内容。如果我分享它为什么会与我的程序的整体设计相混淆,它只会让评论员变得复杂。这不是问题所在,如果您阅读标题,它会说出我想知道的一切。一旦我能够做我在标题中所说的事情,我会尽快检查答案,这与我的整体程序无关。我做出了我的设计选择,不会回头。我的问题结构简单;我不要求程序员手册。
标签: java swing jpanel repaint paintcomponent