Window
の中にコンポーネント(JPanel
)があります。 windowGainedFocus()
イベント(親ウィンドウにフォーカスが当たったとき)から呼び出すときは、いつもpanel.isShowing()
、 を呼び出すときはいつもfalse
が得られます。コンポーネントがJavaで表示されるまでどのように待つことができますか?
windowGainedFocus()
イベントが呼び出されたとき、Window
内のJPanel
の絵はまだ完成していなかったとします。
私はこのWindow
のpaint()
方法、 にその呼び出しisShowing()
を配置しようとしていたが、私はいつも= false
isShowing()
を取得します。
JPanel
が画面に完全に表示され、isShowing()
メソッドがtrueを返すと、イベントが発生する可能性はありますか?あなたがイベントをしたいが、後に実行する必要のあるいくつかの特定のコードをお持ちでない場合は
panel.addHierarchyListener(new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((HierarchyEvent.SHOWING_CHANGED & e.getChangeFlags()) !=0
&& panel.isShowing()) {
//do stuff
}
}
});