java - 如何禁用鼠标单击按钮操作事件?

标签 java swing mouseevent jbutton

有什么办法可以禁用鼠标点击吗?面板中有不同的组件,对于某些按钮单击事件,我想禁用鼠标单击。我的意思是单击鼠标对组件没有任何影响。我可以禁用 setEnabled() 函数,但我不想这样做。

有什么办法可以禁用鼠标点击吗?

情况:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {  
       //..disable the mouse click on each component present inside the panel
}

最佳答案

您可以向所有按钮添加扩展的 ActionListener,如下所示:

public abstract class ExtendedActionListener implements ActionListener{

    private static boolean disabled = false;

    public static void setDisabled(boolean disabled){
        ExtendedActionListener.disabled  = disabled;
    }

    @Override
    public final void actionPerformed(ActionEvent e){

        if(disabled)
            return;

        doSomething;

    }
}

现在只需调用方法 setDisabled(false) 禁用所有 ActionListener。按钮的视觉行为根本没有改变,但是当您单击它时什么也没有发生。

如果视觉点击行为并不重要,那么您可以删除 MouseListener。

关于java - 如何禁用鼠标单击按钮操作事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15812915/

相关文章:

java - 使用 Java 从 Json Payload 获取字段 ID 值

java - 选择一个图像,然后从所选图像中选择一个子图像

java - 我该怎么做才能让我的 Madlibs 程序从此登录/密码程序访问?

c# - 让鼠标指针进行 super 跳跃?

java - 意外字符 ('='(代码 61)): while parsing JsonString

java - 为什么我的线程失败时不会超时?

java - 事件通知是否适用于现在处于无效状态的过期信封?

Java Swing添加JPanel到JLayeredpane到Jframe动态改变大小

Angular 鼠标单击并拖动水平滚动

java - JButton 上的多个dispatchEvent 调用