2011-12-12 55 views
8

我在我的應用程序中有一個jcombobox。 我希望它支持多選(像它在jlist中那樣)。 是否有任何代碼示例?JcomboBox多選

回答

6

我認爲這是不可能的,除非你使用JList,就像你說的。

JComboBox API報告:

用戶可以選擇從下拉列表中,這似乎在 用戶的請求的值。

而且一個JComboBox,tutorial

列表是不是非常有吸引力,但他們比 組合框更合適時,項目的數量較大(比如20),或者當 選擇多個項目可能有效。

更新:

我回顧這個答案,因爲它實際上是「可能」,使用一個ListCellRenderer,添加一個複選框,每個項目做。請考慮this answer來實施這個「解決方案」。

不過,我不認爲這是由於以下原因,一個好主意:

  1. 有像一個JL​​ist,它允許多個選擇控制;
  2. JComboBox控件僅用於單項選擇;
  3. 對我來說,仍然使用JComboBox控件並允許進行多項選擇是沒有意義的。
+0

無賴,謝謝,我知道這是一個令人失望的任何方式 –

+0

。歡迎您:-) –

+0

不,這是可能的,但必須使用Renderer – PeerNet

0

這不是不可能,但要完成工作還需要做很多工作。您需要創建自己的類來擴展/實現所有這些:

  • ListCellRenderer(這樣您可以在彈出窗口顯示時標記選定的項目,並在不存在時指示(至少)有多個選擇項) 。
  • JComboBox的(顯然)
  • BasicComboBoxUI(這實際上是大部分工作是)
  • BasicListUI(至少我不得不)
  • 的ComboBoxModel
你還需要開發自己的實現ItemListener,MouseListener,PopupMenuListener,MouseMotionListener,PropertyChangeListener,KeyListener,ListSelectionListener的類。
提示:您需要在UI類中重寫很多createXXXListener()方法,以繞過丟棄多個選擇的許多位置。
[它仍然不允許的 編輯多選組合。]