如何将CheckBoxes添加到ComboBox?

时间:2016-03-03 15:34:38

标签: checkbox combobox codenameone

我想使用Codename one创建一个包含Checkboxes作为子项的ComboBox。

我没有使用UIBuilder

为了可重用性,我创建了一个包含三个Checkbox的Container:

OverviewCheckBoxContainer
 - Checkbox1
 - Checkbox2
 - Checkbox3

这已经有效了。

由于屏幕占用太多空间,我现在尝试将CheckBoxContainer添加到Combobox中,如下所示:

ComboBox
 - OverviewCheckBoxCont
    -...

但它不起作用,ComboBox只包含一个条目,它不是一个复选框,而是一个文本:

OverviewCheckBoxCont[x=...

(在屏幕上看不到更多内容)

如何解决此问题,因此有一个包含三个Checkbox的下拉菜单,可以切换onClick?

PS:

在主窗体中我添加了CheckBoxesComboBox而不是CheckBoxesCont:

 this.add(BorderLayout.CENTER, checkBoxesComboBox)

而不是

 this.add(BorderLayout.CENTER, checkBoxesCont)

1 个答案:

答案 0 :(得分:2)

1.您可以使用简单的组合框,如下所示

 ArrayList al = new ArrayList();
 findComboBox().setModel(new DefaultListModel(al));

2.要在组合框中添加复选框,您必须自定义组合框

3.而不是自定义组合框,您可以使用显示和隐藏OverviewCheckBoxContainer的按钮,其中包含复选框列表

通过使用通用列表单元格渲染器自定义ComboBox,请参阅此内容:https://www.codenameone.com/manual/components.html#_combobox

在组合中使用复选框的问题在于,您会假设它们都将作为一组出现在组合中,并且组合不是为此而设计的。我只需使用Button并显示带有一组复选框的对话框,然后设置Button的文本以匹配结果。如果您愿意,可以将按钮设置为ComboBox