我在JPanel里面有一个component()Window.当从一个事件false调用panel.isShowing()时windowGainedFocus()(当父窗口获得焦点时),我总是在调用时得到.
我假设当windowGainedFocus()事件被调用时,其JPanel内部的绘画Window还没有完成.
我试图将这个调用isShowing()放在这个paint()方法上Window,但我总是得到isShowing()= false.
有什么方法可以JPanel在屏幕上完全显示时获得一个事件,并且该isShowing()方法将返回true?
谢谢
Yis*_*hai 12
你应该最好通过面板本身的层次结构监听器来解决这个问题:
panel.addHierarchyListener(new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((HierarchyEvent.SHOWING_CHANGED & e.getChangeFlags()) !=0
&& panel.isShowing()) {
//do stuff
}
}
});
Run Code Online (Sandbox Code Playgroud)