有没有办法自定义Java的setEnabled(false)?

Arv*_*nem 3 java swing jcheckbox

假设JCheckBox你想要用作开/关指示器.您setEnabled(false)用来禁用鼠标点击JCheckBox.但是setEnabled(false)也会勾选checkBox和checkBox的文本.有没有办法定制,setEnabled(false)以便不发生灰化?

如果那是不可能的,唯一的解决方案就是定制一个ButtonModel

nos*_*nos 5

您可以继承JCheckBox并覆盖processMouseEvent/processKeyEvent以不执行任何操作.

public class ReadOnlyCheckBox extends JCheckBox {
    public ReadOnlyCheckBox (String text, boolean selected) {
        super(text,selected);
    }

    protected void processKeyEvent(KeyEvent e) {
    }

    protected void processMouseEvent(MouseEvent e) {

    }
}
Run Code Online (Sandbox Code Playgroud)