2011-01-14 17 views
4
private void button_Clicked_download(MouseEvent e) { 
     button_dl.setEnabled(false); 
     System.out.println("Button Clicked."); 
} 

ボタンをクリックすると、ボタンが無効になります。しかし、ボタンはまだMouseEventの下でコードを実行し、私は "ボタンクリック"を参照してください。デバッグコンソールに表示されます。ボタンイベントがまだ無効になっています。

ボタンをクリックするとコードが無視され、実際には無効になっています。ボタンはまだMouseEventの下のコードを実行し、私が見ただし

+0

"swing"タグを追加 –

答えて

10

「ボタンをクリック。」デバッグコンソールに表示されます。

これは、JButtonではなくActionListenerでMouseListenerを使用しないでください。もちろん、MouseListenerを取り除き、関心のあるJButtonにActionListenerを追加するという解決策は明らかです。

+1

ありがとうございました。私はActionListenerを忘れていました。私はそれをそれに変更し、今は完全に動作します。ありがとうございました。 =) – Kyle

+0

あなたは大歓迎です! –

1

MouseClickListenerの代わりにActionListenerを使用する必要があります。そうイベントが有効とマウスリスナーを使用してJavaでボタンを無効にする非常に単純な方法は、実際にあり

1

実行します]をクリックし無効になっている場合でも

あなたのボタンが論理的にクリックされます。

class HoldListen extends MouseAdapter { 

    @Override 
    public void mousePressed(MouseEvent e) { 
     JButton bt = (JButton)e.getSource(); 

     if (!bt.isEnabled()) { 
      return; 
     } 

     // Do code 
    } 
} 

類似のものを作成しようとしているときにあなたの質問が見つかりました。これが私が解決した方法です。 すべてのMouseListenerのメソッドはvoidを返すので、とてもうまく動作します。私の状況では、ActionListenerに戻ることは、MouseListenerが仕事にぴったりだったのに対し、余分な作業が必要でした。プレスリリースunididと他のスレッドが変数を使用している変数を、進行中のシミュレーションで押します。

関連する問題