不应在 Jbutton.update 上使用 getGraphics(),为什么?

Shouldn't use getGraphics() on Jbutton.update, Why?

我总是这样

Jbutton.setEnabled(false);
Jbutton.update(Jbutton.getGraphics());

禁用按钮时,但有人告诉我不应该使用 Jbutton.update(Jbutton.getGraphics());,或者至少不应该那样使用。为什么?效率不高吗?它不正确吗?我应该改变我的方法吗?

Shouldn't use getGraphics() on Jbutton.update,

实际上它比那更宽。程序员不应该在任何 JComponent(或 AWT Component)或 Swing(和 AWT)windows.

上使用 getGraphics

Why?

因为绘制方法由 API 调用,每当它觉得需要重新绘制时(例如,将 window 从最小化恢复,将另一个 window 移到顶部或移开来自 window,将其置于前面 ..)。

所以任何使用 getGraphics 的调用都是 'transient'。

[Holger 的评论中提到了自定义绘画的正确方法,但这不是问题所在。 ]