2016-05-31 50 views
-1

當我使用像Eclipse或Word應用程序,我偶爾看到,既不選擇JCheckBox的也不deselected-它有一個排序「減」圖標: An example of this box in Microsoft WordJCheckBox的第三個選項?

這是什麼意思?是否有目的,如果是這樣,我該如何在Java中實現它?

+0

也許你不能用Swing實現的東西。我會研究'Javafx'。 –

+0

我沒有完全得到你的問題。但如果你想選擇/取消選擇組合框的一些值,你總是可以使用combobox.setselected(index) –

+0

我道歉 - 我的意思是JCheckBox,而不是JComboBox。 :P – RobotKarel314

回答

0

通常,這種複選框用於樹形視圖(包含複選框子集的複選框)以指示它已被部分選中。

例如,當您在Android Studio中的SDK頁面中時,您會看到一堆針對不同版本SDK的複選框,並且每個版本都由源代碼,構建工具等組成。當您選擇版本中的所有元素,版本的複選框將具有正常的勾號,但是如果您僅選擇版本內的源,則該版本的複選框將爲負號或其他一些圖標。當有可選功能的時候,你也可以在安裝程序中找到它,例如Notepad ++等等。

至於在Java中實現它,我不認爲在Swing中有任何內置解決方案,您必須自己編寫它,就像camickr在評論中輸入post,否則您將不得不使用其他庫,如JavaFX或其他第三方。

0

我認爲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); 
      } 
     } 
    }); 
+0

這只是根複選框在子複選框上的行爲(如果您檢查根目錄所有孩子都會被選中),但是這不允許OP創建部分選擇(「減號」)圖標... – OliPro007

+0

部分選擇只出現在第一個右側。檢查後,再次取消選中,它不會再出現。這只是一個UI設計? –

+0

那麼通常情況下,它應該總是出現,如果有部分選擇。你檢查'myCheckBox',它檢查所有的孩子,你有一個完整的選擇。如果你沒有檢查'myCheckBox',但你檢查'childCheckBox1' **或**'childCheckBox2','myCheckBox'應該有部分選擇圖標,如果你檢查'childCheckBox1' **和**'childCheckBox2', myCheckBox'應該有完整的選擇圖標。 – OliPro007

相關問題