私は、Javaスイングデスクトップアプリケーションを開発しています。ダイアログフォームにはOKとキャンセルボタンがあります。ユーザーが[OK]ボタンをクリックすると、アプリケーションはの処理を行います。 okボタンのイベントが実行される前に、ユーザーがもう一度okをクリックするのを止める方法を教えてください。また、私はokボタンが実行されるまでキャンセルボタンを押すことができないようにしたい。どんな助力も高く評価されます。ユーザーによるイベントの生成を停止するにはどうすればよいですか?
1
A
答えて
0
最も簡単な方法は、ボタンをクリックした直後にボタンを無効にし、実行されたアクションが完了したら再度有効にすることです。
0
5
有効化管理は、UIロジックの不可欠な部分です。アクションは、あなたがそうすることができます:
Action action = new AbstractAction("myAction") {
public void actionPerformed(ActionEvent e) {
setEnabled(false);
doPerform();
setEnabled(true);
}
};
button.setAction(action);
は用心:長期実行中のタスクががEDT上で実行されてはならないので、これが唯一の短期的なためであるので、第二またはを防ぐために効果
を持つクリック編集
はちょうどそれがさらに簡単です、あなたはjsr296で質問をタグ付けされたことに気づいた:あなたは@Actionとしてプレゼンテーションモデルの方法をタグ付けし、モデル
のプロパティにそのEnabledプロパティをバインドすることができます@Action (enabledProperty == "idle")
public void processOk() {
setIdle(false);
doStuff;
setIdle(true);
}
プラスタスクのサポート(多くの議論が、使用可能)があります:基本的にSwingWorkerのは、きめ細かいbeanifiedライフサイクルサポートと
0
あなたがしたいことはwaiting cursorのようなものであるようです。
1
あなたはすべてのコントロールを無効にしたい場合は、その後、私はGlassPane
を使用してお勧めしたいです。 http://docs.oracle.com/javase/tutorial/uiswing/components/rootpane.html
関連する問題
- 1. TypeValidationCompletedイベントを停止するにはどうすればいいですか?
- 2. GitHubのJekyllサイト再生成を停止するにはどうすればよいですか?
- 3. ページのアンロードを停止するにはどうすればよいですか?
- 4. アプリケーションのタイムアウトを停止するにはどうすればよいですか?
- 5. サービスでメディアプレーヤーを停止するにはどうすればよいですか?
- 6. ストーリーボードを一時停止するにはどうすればよいですか?
- 7. プログレスバーアニメーションを停止するにはどうすればよいですか?
- 8. サービスを停止するにはどうすればよいですか?
- 9. スパークストリーミングジョブを停止するにはどうすればよいですか?
- 10. Android ProgressBar Circleを停止するにはどうすればよいですか?
- 11. ScheduledExecutorServiceを停止するにはどうすればよいですか?
- 12. 「ブラックボックス」操作を停止するにはどうすればよいですか?
- 13. mousemoveを停止するにはどうすればよいですか?
- 14. Javaスレッドを停止するにはどうすればよいですか?
- 15. v4l2-ctlストリーミングを停止するにはどうすればよいですか?
- 16. ロック/ロック解除イベントのアラートを停止するにはどうすればよいですか?
- 17. ウェブページのテキストのコピーや印刷をユーザーが停止するにはどうすればよいですか?
- 18. iOSでゼロで停止するカウントダウンタイマーを作成するにはどうすればよいですか?
- 19. System.Timers.Timerが停止した後でElapsedイベントを発生させないようにするにはどうすればよいですか?
- 20. スレッドによって制御されるプロセスを停止するにはどうすればよいですか?
- 21. Android、htmlページで音の再生を停止するにはどうすればよいですか?
- 22. Visual Studioによるweb.configのチェックアウトを停止するにはどうすればよいですか?
- 23. Visual Studioのpdbデバッグフォルダの作成を停止するにはどうすればよいですか?
- 24. Javascriptの機能を防止、停止、または終了するにはどうすればよいですか?
- 25. Javascriptが - 私は実行を停止するにはどうすればよい
- 26. Tomcat6、サービス停止イベントをどのように解釈するのですか?
- 27. サブドメインに使用されているドメインCookieを停止するにはどうすればよいですか?
- 28. UITextView iOSでテキストの先頭にスペースを入力しないようにユーザーを停止するにはどうすればよいですか?
- 29. 1つのコンテナがドッカーの作成で停止したときに、すべてのコンテナを停止するにはどうすればよいですか?
- 30. 特定のバリアに達するとアニメーションを停止するにはどうすればよいですか?
しかし、どのような私のダイアログ上の多くのボタンがある場合ですが、私は継続的に有効および無効にする必要がありますが、それはメンテナンスの悪夢になる可能性があります。詳細はこちらを参照してください。それを行うためのより優雅な方法があるはずです。 – Will