私は、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. このNSThreadを停止するにはどうすればよいですか?
- 4. ページのアンロードを停止するにはどうすればよいですか?
- 5. アプリケーションのタイムアウトを停止するにはどうすればよいですか?
- 6. Javaでオーディオを停止するにはどうすればよいですか?
- 7. WindowsでKibanaを停止するにはどうすればよいですか?
- 8. サービスでメディアプレーヤーを停止するにはどうすればよいですか?
- 9. 例外によりプログラムの停止を防止するにはどうすればよいですか?
- 10. スパークストリーミングジョブを停止するにはどうすればよいですか?
- 11. Android ProgressBar Circleを停止するにはどうすればよいですか?
- 12. Javaスレッドを停止するにはどうすればよいですか?
- 13. 「ブラックボックス」操作を停止するにはどうすればよいですか?
- 14. ストーリーボードを一時停止するにはどうすればよいですか?
- 15. サービスを停止するにはどうすればよいですか?
- 16. v4l2-ctlストリーミングを停止するにはどうすればよいですか?
- 17. 比例イメージスケーリングを停止するにはどうすればよいですか?
- 18. マルチスレッドを停止するにはどうすればよいですか?
- 19. マインドストームプログラムを停止するにはどうすればよいですか?
- 20. mousemoveを停止するにはどうすればよいですか?
- 21. fabricjs - フォントフォールバックを停止するにはどうすればよいですか?
- 22. .click()を停止するにはどうすればよいですか?
- 23. Kubernetesコントロールプレーンポッドを停止するにはどうすればよいですか?
- 24. AsyncTaskを停止するにはどうすればよいですか?
- 25. ScheduledExecutorServiceを停止するにはどうすればよいですか?
- 26. jMonkeyEngineゲームを停止するにはどうすればよいですか?
- 27. プログレスバーアニメーションを停止するにはどうすればよいですか?
- 28. ロック/ロック解除イベントのアラートを停止するにはどうすればよいですか?
- 29. onfocusイベントの起動を停止するにはどうすればよいですか?
- 30. TikiWikiの匿名ユーザーからAjaxリクエストサービスを停止するにはどうすればよいですか?
しかし、どのような私のダイアログ上の多くのボタンがある場合ですが、私は継続的に有効および無効にする必要がありますが、それはメンテナンスの悪夢になる可能性があります。詳細はこちらを参照してください。それを行うためのより優雅な方法があるはずです。 – Will