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

工作当我点击按钮,按钮看起来禁用。然而,该按钮仍然执行MouseEvent下的代码,我看到“Button Clicked”。在调试控制台中。按钮事件仍然禁用按钮

我怎样才能使它所以如果单击按钮,它忽略该代码并确实禁用?

+0

添加“秋千”标签 – 2011-01-14 17:06:29

回答

10

但是,该按钮仍然执行MouseEvent下的代码,我看到“Button Clicked”。在调试控制台中。

这正是为什么你不应该使用带有JButton的MouseListener,而是使用ActionListener。解决方法当然是显而易见的 - 摆脱的MouseListener的,而是添加一个ActionListener感兴趣的JButton。

+1

谢谢。我忘记了ActionListener。我改变了它,它现在完美。谢谢。 =) – Kyle 2011-01-14 17:03:39

1

你需要使用一个ActionListener而不是MouseClickListener。即使是禁用,因此点击事件将执行

1

其实是有启用和禁用Java中的一个按钮,使用鼠标监听的一个非常简单的方法

您的按钮被点击逻辑。

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的是完美的人选。按下一个变量释放undid,另一个线程在持续模拟中使用该变量。