java.awt.component的repaint()、update()有什么区别呢

时间:2021-07-17 02:26:35
java.awt.component的repaint()、update(),以及直接调用paint(Graphics g)有什么区别呢。这个问题问我们java老师也不懂,晕,本人找了很久的资料,没有结果,希望各位帮忙,多谢了

5 个解决方案

#1


help------------------------------------

#2


然后他们和JPanel的updateUI()有什么区别呢,
如下面程序:
  public void contentPane_mouseClicked(MouseEvent e) {
        System.out.print("Mouse click");
         contentPane.add(new mycanvas(100,100));
        contentPane.updateUI();
    }其中mycanvas是一个Canvas对象,这样在每点击一下鼠标会画出一个圆,但contentPane.updateUI()改为repaint()就不行了,为什么呢,多谢各位了
知道的请不吝赐教,不知道的顶一下,本人表示忠心感谢

#3


repaint()--重新绘制这个组件。
update()--更改这个组件。
paint()--绘制这个组件

三个方法都用于组件显示和刷新的方法.
程序中如果需要重新绘图,可以调用repaint方法,AWT线程会自动调用update方法,首先将当前画面清空,然后再电泳paint方法重新绘制图形.

#4


Panel中update方法是先擦后画,有闪烁。而JPanel的updateUI中用双缓冲画。

#5


那为什么用repaint()不能显示出来,但是只要界面的大小改变一下又可以画出来了,这是为什么啊,

#1


help------------------------------------

#2


然后他们和JPanel的updateUI()有什么区别呢,
如下面程序:
  public void contentPane_mouseClicked(MouseEvent e) {
        System.out.print("Mouse click");
         contentPane.add(new mycanvas(100,100));
        contentPane.updateUI();
    }其中mycanvas是一个Canvas对象,这样在每点击一下鼠标会画出一个圆,但contentPane.updateUI()改为repaint()就不行了,为什么呢,多谢各位了
知道的请不吝赐教,不知道的顶一下,本人表示忠心感谢

#3


repaint()--重新绘制这个组件。
update()--更改这个组件。
paint()--绘制这个组件

三个方法都用于组件显示和刷新的方法.
程序中如果需要重新绘图,可以调用repaint方法,AWT线程会自动调用update方法,首先将当前画面清空,然后再电泳paint方法重新绘制图形.

#4


Panel中update方法是先擦后画,有闪烁。而JPanel的updateUI中用双缓冲画。

#5


那为什么用repaint()不能显示出来,但是只要界面的大小改变一下又可以画出来了,这是为什么啊,