由于某种原因,我的 paintComponent(Graphics g) 方法被无限调用。我似乎无法分辨谁在调用它,即使我在调用中转储 StackTrace(这是一个已调度和处理的事件)。
有什么简单的方法可以查明是谁触发了事件?
更新:我找到了原因,现在我明白了原因。谁回答正确,谁就会得到问题的答案。
这是导致问题的代码:
@Override
public void paintComponent(Graphics g)
{
myJButton.setIcon(ResourceLoader.getImageIconWithLocale(MY_BUTTON_IMAGE));
super.paintComponent(g);
}
仅供引用:这真的很棘手!!看代码不是很明显。我做了一个错误的假设。
最佳答案
我不知道这是哪个组件,但在绘制例程中为按钮设置图标是个坏主意。它肯定会导致按钮被重新绘制。如果按钮是组件的子组件,则设置按钮会使组件无效,从而导致无限循环。
将图标设置在其他地方,例如最初设置对话框/窗口的地方。
关于java - 谁在调用 paintComponent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3533777/