【发布时间】:2013-04-16 02:46:33
【问题描述】:
我有一个扩展 JPanel 的类,它包含一个 draw(Graphics page) 方法来绘制自己。如果我正在构建一个测试驱动程序并想在框架上显示它我应该使用什么。我很困惑在paint()、paintComponent()、getGraphics() 等之间。
班级
class Car extends JPanel {
void draw (Graphics page) {
....draw polygons...
}
*编辑*
目标是让汽车在屏幕上移动,我将绘制方法更改为“paintComponent()”,它就出现了!但它需要移动它并用计时器重新绘制它。所以我想一遍又一遍地画它是它是draw()而不是paintComponent()的原因。 ?
【问题讨论】:
-
阅读Swing Painting Tutorials -- 就在那里。你也可以在这个网站上搜索例子,因为它有很多例子,有些是我写的。如果您仍然卡住,请返回一个具体的可回答问题。
-
从Performing Custom Graphics开始,然后看看2D Graphics,因为你显然还不够困惑,所以看看Painting in AWT and Swing
-
你应该覆盖
paintComponent,但你不应该手动调用它! -
你无法控制重绘过程,克服它。您可以通过调用
repaint()来请求重新绘制组件。看看this example -
还有this one...
标签: java swing jpanel awt paint