Java 按钮事件仍在禁用按钮的情况下工作
当我单击按钮时,按钮看起来已禁用。但是按钮仍然执行MouseEvent下的代码,我在调试控制台中看到“button Clicked.” 如果单击该按钮,它将忽略代码并确实被禁用,我如何使其如此 但是按钮仍然执行MouseEvent下的代码,我在调试控制台中看到“button Clicked.”Java 按钮事件仍在禁用按钮的情况下工作,java,swing,Java,Swing,当我单击按钮时,按钮看起来已禁用。但是按钮仍然执行MouseEvent下的代码,我在调试控制台中看到“button Clicked.” 如果单击该按钮,它将忽略代码并确实被禁用,我如何使其如此 但是按钮仍然执行MouseEvent下的代码,我在调试控制台中看到“button Clicked.” 这就是为什么不应该将鼠标侦听器与JButton一起使用,而应该使用ActionListener。解决方案当然是显而易见的——去掉MouseListener,而是将ActionListener添加到感兴趣的
这就是为什么不应该将鼠标侦听器与JButton一起使用,而应该使用ActionListener。解决方案当然是显而易见的——去掉MouseListener,而是将ActionListener添加到感兴趣的JButton中。您需要使用ActionListener而不是MouseClickListener
private void button_Clicked_download(MouseEvent e) {
button_dl.setEnabled(false);
System.out.println("Button Clicked.");
}
您的按钮在逻辑上被单击,即使它被禁用,因此单击事件将执行在java中,实际上有一种非常简单的方法来启用和禁用使用鼠标侦听器的按钮
private void button_Clicked_download(MouseEvent e) {
button_dl.setEnabled(false);
System.out.println("Button Clicked.");
}
我在尝试创建类似的东西时发现了你的问题,我就是这样解决的。
MouseListener的所有方法都返回void,因此效果非常好。在我的情况下,回到ActionListener需要做很多额外的工作,而MouseListener则非常适合这项工作。按set可设置一个变量,该变量将释放UNDD,另一个线程将在正在进行的模拟中使用该变量。谢谢。我忘了ActionListener。我把它改成那样,现在它工作得很好。谢谢