Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java setEnable(false)不起作用_Java_Swing - Fatal编程技术网

java setEnable(false)不起作用

java setEnable(false)不起作用,java,swing,Java,Swing,当我按下JLabel时,我得到一个鼠标按下的事件调用,我想在其中禁用JButton。然而,什么也没有发生。为什么会这样 以下是JLabelmousePress事件处理程序: public void mousePressed(MouseEvent e) { get_clickevent(false) } 下面是一个函数,用于调用鼠标按下的mousePressed: public void get_clckevent(final boolean value){ java.awt.

当我按下
JLabel
时,我得到一个
鼠标按下的事件调用,我想在其中禁用
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。

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

也不是:

  if (valu == false) { 
只要做:

  if (!valu) { 
这条线的意义是什么:

    boolean valu = value;

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

是否调用了runnable?尝试将其直接放入get\u clcevent此处不需要EventQueue.invokeLater,因为已经在EDT上调用了get\u clckevent方法。但我从你的帖子中可以得出的主要结论是,到目前为止,你发布的任何代码中都没有包含你的错误。如果您还没有修复此问题,请简化代码,创建一个并发布到此处。您确定调用了正确的函数吗?调用get_clickevent(),但禁用get_clckevent()中的按钮;但在示例中可能是输入错误。是否调用了runnable?尝试将其直接放入get\u clcevent此处不需要EventQueue.invokeLater,因为已经在EDT上调用了get\u clckevent方法。但我从你的帖子中可以得出的主要结论是,到目前为止,你发布的任何代码中都没有包含你的错误。如果您还没有修复此问题,请简化代码,创建一个并发布到此处。您确定调用了正确的函数吗?调用get_clickevent(),但禁用get_clckevent()中的按钮;但在示例中可能是输入错误。yes按钮与我要禁用的按钮相同,但没有发生任何情况。事件调度线程中是否存在问题?。此按钮是Gui生成器按钮(拖放),不是通过手动编码创建的。您确定这是正确的按钮,是否执行了println?另外,不要使用GUI生成器手工编写,尤其是在学习Swing时。然后,您需要确保鼠标事件确实被调用。是否已将鼠标侦听器添加到组件?仔细检查这方面的情况。MouseListener被添加到JLabel中,我在其中调用函数get_clickevent(false),鼠标事件正在工作。yes按钮与我要禁用的按钮相同,但没有发生任何情况。事件调度线程中是否存在问题?此按钮是Gui生成器按钮(拖放)不是手工编码的。你确定它是正确的按钮,你做了打印吗?另外,不要使用GUI生成器手工编写,尤其是在学习Swing时。然后,您需要确保鼠标事件确实被调用。是否已将鼠标侦听器添加到组件?仔细检查这方面的情况。MouseListener被添加到JLabel中,在JLabel中我调用函数get_clickevent(false),mouse event正在工作。