Java如何绘制JComponents?

时间:2011-12-26 20:11:50

标签: aspectj instrumentation

我想知道Java如何在屏幕上绘制JComponents?

我使用AspectJ来设置对Graphics2D方法的所有调用。例如,每当从应用程序调用Graphics2d.Draw(Shape)时,我就能捕获该调用。

Java是否也使用Graphics类来绘制JComponents,让我们说JButtons?例如,我的应用程序上有一个JButton,我想捕获图形类的方法,以便在屏幕上绘制JButton?我不知道该怎么做。

有什么想法吗?

更新: 我试图覆盖JButton类和PaintComponent方法。如果我这样做,我可以捕获用于绘制JButton的Graphics方法的调用。

如何在不覆盖特定JComponent类的情况下捕获这些调用?

1 个答案:

答案 0 :(得分:1)

yourJButton.repaint();导致swing调用paint()方法。您不应该直接调用paint,而应该使用repaint方法来调度组件以进行绘制。这个方法实际上将绘画工作委托给三个受保护的方法:paintComponent,paintBorder和paintChildren。