JFrame.repaint()和JPanel.repaint()之间的区别

Ank*_*kit 8 java swing

可以请任何人解释JPanel.repaint()方法和JFrame.repaint()方法之间的区别,我想两者都调用paintComponent()JPanel中的方法.

请澄清一下,谢谢

Hov*_*els 18

调用repaint()任何组件都会向重绘管理器添加一个请求以绘制该组件.如果条件正确,则管理器将安排paint(...)调用Component的方法.由于组件的paint方法然后调用paintComponent(...),paintBorder(...)paintChildren(...)这将有组分涂料本身,它的边框和级联画递归到其所有的孩子,他们的孩子,他们的孩子的孩子,等等.调用此有关的JFrame将导致此级联各地发生整个顶级窗口,而在子组件上调用它将导致仅重新绘制该组件及其子组件.

请注意,调用repaint()不保证重绘管理器将绘制组件,尤其是在存在堆叠请求的情况下.有关详细信息,请阅读AWT和Swing中的绘画.


Kum*_*tra 9

1.repaint()调用方法时,事件处理程序线程通知所有组件,然后每个组件调用它们的 paintComponent() 方法.

2.调用JPanel.repaint()将包含JPanel中的所有组件 repaint(),并且调用JFrame.repaint()将具有JFrame中的所有组件 repaint().

3.调用JFrame.repaint()以重新绘制JPanel,而无需JPanel.repaint()....