按钮事件仍然适用于禁用按钮

Kyl*_*yle 5 java swing

private void button_Clicked_download(MouseEvent e) {
      button_dl.setEnabled(false);
      System.out.println("Button Clicked.");
}
Run Code Online (Sandbox Code Playgroud)

当我单击按钮时,该按钮看起来已禁用.但是按钮仍然执行MouseEvent下的代码,我看到"Button Clicked".在调试控制台中.

我怎么能这样做,如果单击按钮它会忽略代码并确实被禁用?

Hov*_*els 11

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

这正是您不应该将MouseListener与JButton一起使用而是使用ActionListener的原因.解决方案当然很明显 - 摆脱MouseListener,而是将ActionListener添加到感兴趣的JButton中.