ハンドル私は機能offlineClicked
がためにおおよその周り1分を取る同時イベントのJava Swingのイベントハンドラ
JRadioButton offline = new JRadioButton();
offline.setText("Offline Mode");
modePanel.add(offline);
modePanel.setLayout(new GridLayout(2,1));
offline.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
offlineClicked(evt);
}
});
をJPanel
にJRadioButton
を追加し、そのマウスクリックイベントを処理する次Java
コードを持っています完全に実行されます。 実行が完了するまで、実行された他のアクションは処理されません。
その後に実行されるすべてのアクションは、offlineClicked
の実行が完了すると、Eventqueueに行き、FIFOを処理したように見えます。
このため、UI は、がハング状態になっているようです。
スイングハンドルイベントを同時に実行し、最後が完全に実行されるまで待つことはできません。
標準的な手法は、イベントスレッドでアプリケーションの作業を絶対にしないことです。 UIが応答性を保つことができるように、アプリケーション処理を常に別の処理スレッドで実行します。このテーマでは書籍やチュートリアルが全部入手できますが、いくつかのGoogle検索を行います。 Oracleのチュートリアルから始めてください。 –
ボタンのSwingWorkerとActionListenerを探しています。 [(SwingWorkerの)()のような)](http://stackoverflow.com/questions/20944719/how-to-use-swingworker/20945255#20945255) – MadProgrammer
すべてのクリックが処理されることは不可欠ですか?または、最初のクリックの最初の処理が完了するまで、クリックを無視したいですか? - (SwingWorkerなどを使用していても)並行ソリューションを実装する際には、これを考慮する必要があります。 – Fildor