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