在画布上绘图而不延伸它?

时间:2014-05-27 22:13:57

标签: java canvas frame

为了在我的JFrame中绘制图像和/或形状,我使用了一种非常常用的方法。

我使用扩展canvss的类,创建我自己的自定义JFrame对象,然后添加我自己的类(扩展camvas)。然后,我重写了油漆'方法,以便在画布上绘画。

基本上,这是一个例子:http://pastebin.com/KhZudT3r

这整个过程完美无缺,但我想知道是否有一种方法可以在jframe(可以是画布上)上绘制而不必扩展画布类?

谢谢,

杰克

1 个答案:

答案 0 :(得分:0)

尝试使用JPanel并覆盖paintComponent()方法进行自定义绘画。

  • 不要忘记在重写方法中调用super.paintComponent(g)

  • 从不直接在JFrame上绘图,而是在JPanel上绘制,然后将其添加到JFrame

示例代码:

JPanel panel = new JPanel() {
    @Override
    public void paintComponent(Graphics g) {
      super.paintComponent(g);

      //your custom drawing here
    }
};