Java デスクトップ アプリケーションを作成しています。「作成」と「キャンセル」の 2 つのボタンがあります。作成を押すと、新しいウィンドウにレポートが作成されます。私の問題は「キャンセル」ボタンにあります。ユーザーが作成ボタンを押すと、新しいレポートの作成に時間がかかります。キャンセル ボタンは、作成時にのみ機能する必要があります。ユーザーがキャンセル ボタンを押した場合、レポート作成アクションは中止されます。アクションリスナーを作成ボタンとキャンセルボタンに追加しますが、作成をクリックするとキャンセルボタンを同時にクリックできません。
2633 次
2 に答える
2
各プロセスを個別のスレッドで実行してみてください。キャンセルが機能しない理由は、作成のプロセスが完了するまでに時間がかかるためです。その間、メイン スレッドを占有し、他の UI 要素によって行われる可能性のあるすべてのアクション (キャンセル ボタンを含む) を停止します。
キャンセル ボタンが機能している可能性があります。ただし、クリックするたびに、発生したイベントは、作成ボタンのイベントの背後で処理するためにキューの後ろに置かれます。イベントの処理を別のスレッドに配置し、両方のボタンに必要なリソースを同期することにより (それらのリソースがスレッドセーフである限り!)、イベント ボタンによって作成されたスレッドをキャンセル ボタンで簡単に停止できるはずです。
于 2012-08-16T13:43:01.373 に答える
0
ActionListener
"Create"JButton
用と "Cancel" 用の2 つの異なる を作成してみてくださいJButton
。これにより、一方が処理中に他方が応答できるようになります。
于 2012-08-16T13:41:26.010 に答える