JCheckBox 上的第三个选项?

Third option on JCheckBox?

当我使用像 Eclipse 或 Word 这样的应用程序时,我偶尔会看到既未选中也未取消选中的 JCheckBox - 它有一种 'minus' 图标:

这是什么意思?它是否有目的,如果有,我如何在 Java 中实现它?

通常,这种复选框用于树视图(包含复选框子集的复选框)以指示它已被部分 selected。

例如,当您在 Android Studio 的 SDK 页面中时,您有一堆不同版本的 SDK 的复选框,每个版本由源、构建工具、等。当您 select 版本中的所有元素时,该版本的复选框将有一个正常的勾号,但是如果您 select 仅版本中的源,该版本的复选框将是减号或其他一些图标。当有可选功能(如 Notepad++ 和许多其他功能)时,您也可以在安装程序中找到它。

至于在 Java 中实现它,我认为 Swing 中没有任何内置解决方案,您要么必须像 camickr 放的 post 中那样自己编写在评论中,否则您将不得不使用其他库,例如 JavaFX 或其他第三方库。

我认为 Swing 不支持构建 UI。但是这段代码具有相同的功能。检查这个:

    myCheckBox.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            if (e.getStateChange() == ItemEvent.SELECTED) {
                //Check all Checkbox below
                childCheckbox1.setSelected(true);
                childCheckbox2.setSelected(true);
            } else {
                //Uncheck all Checkbox below
                childCheckbox1.setSelected(false);
                childCheckbox2.setSelected(false);
            }
        }
    });