You can subclass JCheckBox and override processMouseEvent / processKeyEvent to do nothing.
public class ReadOnlyCheckBox extends JCheckBox {
public ReadOnlyCheckBox (String text, boolean selected) {
super(text,selected);
}
protected void processKeyEvent(KeyEvent e) {
}
protected void processMouseEvent(MouseEvent e) {
}
}
source
share