我有一个扩展 JPanel 的类,它包含一个绘制(图形页面)方法来绘制自身。如果我正在构建一个测试驱动程序并希望将其显示在框架上,我应该使用什么...我很困惑在paint()、paintComponent()、getGraphics()等之间。
类(class)
class Car extends JPanel {
void draw (Graphics page) {
....draw polygons...
}
*编辑*
目标是让汽车在屏幕上移动的动画,我将绘制方法更改为“paintComponent()”,它就出现了!但它需要移动它并用计时器重新绘制它。所以我猜想一遍又一遍地绘制它是它是draw()而不是paintComponent()的原因。 ?
最佳答案
paint()
AWT 容器(使用 Swing)和 Swing 顶级容器,例如JFrame
和JApplet
(不要在顶级容器中绘制 - 添加JPanel
或JComponent
)。所以基本上,这个时代不要改变方法。paintComponent()
绝大多数 Swing 组件。getGraphics()
BufferedImage
(可能显示在JLabel
中)。这将提供一个Graphics
实例,但我更喜欢使用createGraphics()
对于Graphics2D
实例(渲染提示非常棒)。
关于java - 绘制扩展 JPanel 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159997/