1

重要な Java アプレットがあります。メニューがあり、そのメニュー アプレットを介して、拡張されたダイアログが表示されますJDialog。ダイアログは を使用して表示されsetVisible(true)ます。ユーザーがそのダイアログでの作業を終了すると、ダイアログは (「完了」ボタンを押した後) を使用して閉じられますthis.dispose()

ここで、奇妙な問題があります - アプレットは Firefox では正常に動作しますが、IE でも Chrome では、アプレットが他の (ダイアログ) ウィンドウを表示すると、そのウィンドウがアプレットの背後に表示されます。ダイアログを表示するには、ダイアログがあるはずの場所をクリックする必要があります(前面に移動します)。(表示中に)もう一度クリックすると、再び消えます(バックグラウンドに移動します)。ボタンのクリックは通常どおり機能しますが、ポップアップウィンドウ自体 (タイトルバーであっても) をクリックすると、「表示」状態に変わります。

Please, any idea what's wrong? How to resolve that bug?

4

1 に答える 1

4
// the applet will typically appear inside a Window, get a reference to it using:
Window parent = Window.getWindows()[0];
// use the window as the parent of a modal dialog.
JDialog dialog = new JDialog(parent);
dialog.setModal(true);
// ...
dialog.setVisible(true);
// won't be called until the applet is dismissed 
someJComponent.requestFocusInWindow();

Web ページに埋め込まれたアプレットは、常にモダリティとフォーカスの問題の影響を受けます。ユーザー エクスペリエンスを向上させるには、 Java Web Startを使用してフリー フローティング アプレットを起動するか、JWS を使用してフレームを起動します。

于 2012-05-24T11:48:05.420 に答える