2016-03-03 101 views
1

我想創建一個ComboBox,其複選框作爲使用Codename的孩子。如何將複選框添加到組合框?

我沒有使用UIBuilder

可重用我創建了一個集裝箱在它有三個複選框:

OverviewCheckBoxContainer 
- Checkbox1 
- Checkbox2 
- Checkbox3 

,這已經工作。

,因爲它需要在屏幕上太多的空間,我現在試圖將CheckBoxContainer添加到組合框,如下所示:

ComboBox 
- OverviewCheckBoxCont 
    -... 

,但它不工作,組合框只包含單個條目,它的不是一個複選框,但文本:

OverviewCheckBoxCont[x=... 

(不能再在屏幕上看到)

我該如何解決這個問題,所以包含三個下拉菜單複選框,切換onClick?

PS:

在我添加CheckBoxesComboBox代替CheckBoxesCont主要形式:的

this.add(BorderLayout.CENTER, checkBoxesComboBox) 

代替

this.add(BorderLayout.CENTER, checkBoxesCont) 

回答

2

1.You可以使用簡單的組合框如下所示

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

2.And添加複選框在組合框,您可以自定義組合框

定製組合框的3.Instead,您可以使用該按鈕顯示和隱藏OverviewCheckBoxContainer包含checkboxs的列表

用於自定義見本組合框與通用列表單元格渲染器:https://www.codenameone.com/manual/components.html#_combobox

組合框中使用複選框的問題是,你會認爲他們都會出現在組合中,作爲一個組合,組合並不是設計來做到這一點。我將使用Button,然後顯示一個對話框,其中包含一組複選框,然後將Button的文本設置爲與結果相匹配。如果您喜歡,可以將按鈕設置爲ComboBox

+0

更新回答,附加一些見解 –

+0

我不得不承認,我真的不知道如何用按鈕來做這件事。在窗體的中心已經有一個自定義列表,並且該按鈕需要位於Borderlayout的北部。添加複選框「onClick」不會描述它們。 (儘管我稱之爲重繪方法)。 並記住:**我不使用UIBuilder - __findComboBox__不工作.. ** 編輯:它們被描繪,但不是用戶可見 –

+0

而我真的想避免一個對話框 –