绘制一个扩展JPanel的类

时间:2013-04-23 02:41:42

标签: java swing jpanel awt paint

我有一个扩展JPanel的类,它包含一个绘制(Graphics页面)方法来绘制自己..如果我正在构建一个测试驱动程序并希望在框架上显示它应该使用什么...我很困惑在paint(),paintComponent(),getGraphics()等之间。

班级

class Car extends JPanel {

     void draw (Graphics page) {
         ....draw polygons...
     }

* 编辑 *

目标是让汽车在屏幕上移动动画,我将绘制方法更改为'paintComponent()'并显示出来!但它需要移动它并用计时器重新绘制它。所以我想一遍又一遍地绘制它是draw()而不是paintComponent()的原因。 ?

1 个答案:

答案 0 :(得分:2)

  • paint()

    AWT容器(使用Swing)&摆动顶级容器,例如JFrame& JApplet(不要在顶级容器中绘制 - 添加JPanelJComponent)。所以基本上,不要在这个时代改变方法。

  • paintComponent()

    绝大多数Swing组件。

  • getGraphics()

    BufferedImage(可能显示在JLabel中)。这将提供Graphics实例,但我更喜欢将createGraphics()用于Graphics2D实例(渲染提示非常棒)。