2011-12-12 103 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()方法,以绕过丢弃多个选择的许多位置。
[它仍然不允许的 编辑多选组合。]