当我按JLabel时,我得到一个mousePressed事件调用,在该事件中我想禁用JButton。但是,没有任何反应。为什么是这样?

这是JLabel mousePress事件处理程序:

public void mousePressed(MouseEvent e) {
    get_clickevent(false)
}


这是在mousePressed上调用的函数:

public void get_clckevent(final boolean value){

    java.awt.EventQueue.invokeLater(new Runnable() {

        boolean valu = value;

        public void run() {

            if (valu == false) {
                btnSave.setEnabled(false); //here is button that does not disable.
            }
        }
    });

最佳答案

您所拥有的代码看起来没有问题。确保btnSave实际上指向您认为正确的按钮。另外,请确保您的鼠标事件实际上正在发生。 (在某处添加println以确保您的按钮确实设置为禁用)。

也可以代替:

  if (valu == false) {


做就是了:

  if (!valu) {


这行的意义是什么:

    boolean valu = value;


只需在if语句中使用value而不是valu即可。

09-04 20:45