4

問題:ユーザーがアプレットから長時間の操作を開始します。プログレスバー付きのJDialogが表示されます。ユーザーが開いたり、別のブラウザタブに切り替えたりする-JDialogは引き続き表示されます(ユーザーを悩ませます)。

ユーザーが別のタブに切り替えるときは、JDialogを非表示にする必要があります。ユーザーが元に戻すと、再び表示されます。

注:同様の問題で質問がありました。解決策はwindowActivated/deactivateedリスナーを追加することでした。ウィンドウに複数のフレームがあり、そのうちの1つにアプレットが含まれているため、機能しません。ユーザーが別のフレームをクリックすると、windowDeactivateイベントがキャストされますが、ユーザーは同じタブにいます。

4

2 に答える 2

5

ダイアログの所有者としてアプレットを指定してみてください。

JDialog dialog = new JDialog(SwingUtilities.windowForComponent(this));

ここで、「これ」はJAppletです。うまくいけば、これにより、親がフォーカスを失うたびにダイアログがアクティブ化/非アクティブ化されます。

于 2011-09-28T14:19:06.837 に答える