私のアプリは、JFrame を開く JApplet です。アプレットにはリスナーとボタンがあるため、フレームが別のウィンドウの背後にある (フォーカスを失った) 場合、ユーザーはボタンをクリックするだけでウィンドウを前面に出すことができます。 frame.toFront();
これはうまくいきます。
しかし、最初に (アプレットの でpublic void init() {}
)、呼び出した後、frame.setVisible(true);
を呼び出しframe.toFront();
て、それが前に開始されることを確認します。ただし、フレームはすぐにブラウザーの背後に移動します。ただし、ボタンを押すとコールバックされます。繰り返し呼び出す別のスレッドを実行しようとしましたがframe.toFront();
、これが停止するとすぐに、フレームはブラウザの後ろに移動します。ボタンを押したときだけ前面に出て、前面にとどまります。また、ループや時間を継続的に前に保持することは、ユーザーが意図的に遅れさせる必要があるか、または望む可能性があるため、適切なオプションではありません。この「バグ」は、Mac (Java 1.5 を実行) には存在しませんが、Windows (1.6 を実行) - IE、FF、Chrome、Safari を含みますが、Opera には (奇妙なことに) 存在しません。
考えられる原因と解決方法は?