java - 绘制扩展 JPanel 的类

标签 java swing jpanel awt paint

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

类(class)

class Car extends JPanel {

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

*编辑*

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

最佳答案

  • paint()

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

  • paintComponent()

    绝大多数 Swing 组件。

  • getGraphics()

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

关于java - 绘制扩展 JPanel 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159997/

相关文章:

java - JTable:单元格中自定义面板中的按钮

java - 图像预览 - Android

java,如何在spark 1.4.1中调用UDF

Java 在流中查找中位数

java - 如何加快获取图像和文本的jdbc sql查询速度

java - 扩展 JScrollPane 以在其中包含文本区域

java - 如何在 JPanel 数组中使用 JCheckbox 数组

JavaFX、TableView、编辑后动态更新Item

java - Java 中颜色值的问题

java - 使用 MiGLayout 设置 JPanel 的大小