java setEnabled(false)不起作用

时间:2011-03-02 00:15:45

标签: java swing

当我按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.
            }
        }
    });

1 个答案:

答案 0 :(得分:1)

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

而不是:

  if (valu == false) { 

只是做:

  if (!valu) { 

这一行有什么意义:

    boolean valu = value;

只需在if语句中使用值而不是值。