JDialog
ユーザーから名前を取得する があります。の後ろはJDialog
アプレットです。ユーザーが名前を入力するまで、そのアプレットにアクセスしたくありません。を試しJDialog.setAlwaysOnTop(true)
ましたが、アプレットがAccessException
エラーをスローします。だから私がしたことは、 (ユーザー名の入力) が空 ("")になるJDialog.setVisible(true)
まで実行される while ループを維持することでした。JtextField
しかし、何らかの理由で、これは非常に遅く動作します。つまり、JDialog
負荷がかかりますが、集中するのに時間がかかりJTextField
、ユーザーが自分の名前を入力しても、非常に遅くなります... 2 秒で 1 文字のように... 他に何かありますか?アプレットにアクセスする前にユーザーに名前の入力を強制する方法はありますか?
15929 次
3 に答える
12
モーダルJDialogを使用します。たとえば、JAppletのinit(...)メソッドのコードには次のものが含まれます。
JDialog dialog = new JDialog(SwingUtilities.windowForComponent(this));
dialog.setModal(true);
dialog.setSize(...);
dialog.setVisible( true );
または、JOptionPane.showInputDialog()を使用することもできます。ここでも、オプションペインの親コンポーネントとして「this」を指定するだけです。
于 2010-04-13T19:31:35.860 に答える
3
別のオプションは次のとおりです。
frame.setAlwaysOnTop(true);
ダイアログを他のダイアログの上に強制します。
于 2014-04-06T20:19:02.657 に答える
0
プログラムがその foo ループを処理しているため、実行が遅くなります
できることは、ウィンドウリスナーを追加してから、jdialog がフォーカスを失った (またはアプレットが取得した) フォーカスを jdialog に戻すことです。
これは、現在使用している for ループよりもはるかに優れたパフォーマンスを発揮するはずです
于 2010-04-13T18:17:31.293 に答える