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正在工作。