2012-12-20 18 views
4

我有一個循環來構建我們的問卷。我有一個函數,我稱之爲構建正確的類型。以下是構建組合框的部分:如何讓SimpleComboBox顯示我的默認值

Field<?> field = null; 
if (item instanceof MultipleChoiceQuestionDTO) { 
    MultipleChoiceQuestionDTO multipleChoice = (MultipleChoiceQuestionDTO) item; 
    SimpleComboBox<String> cmbQuestion = new SimpleComboBox<String>(); 
    String prompt = multipleChoice.getPrompt(); 
    cmbQuestion.setFieldLabel(ImageViewer.formatPrompt(prompt)); 
    List<String> choices = new ArrayList<String>(); 
    choices.add(prompt); 
    for (String choice : multipleChoice.getPossibleAnswers()) { 
    choices.add(choice); 
    } 
    cmbQuestion.add(choices); 
    cmbQuestion.setEditable(false); 
    cmbQuestion.setForceSelection(true); 
    cmbQuestion.setSimpleValue(prompt); 
    field = cmbQuestion; 
} 

我想設置提示的默認答案,以便日後可以進行測試。問題是這不是在我的組合框上設置選定的值。我錯過了什麼?

+0

能否請你解釋一下?你想在SimpleComboBox中選擇默認選擇的「選擇」列表中的一個項目嗎? 或 你想要一些默認的文本出現提示用戶選擇一個有效的選擇? – sanbhat

+0

兩者。如果已經有選擇,我想選擇該值。如果沒有,我想顯示默認文本並強制選擇。 – Thom

回答

2

假設你有一個「答案」。你可以從List<String> choices得到它的索引。

int answerIndex = choices.indexOf(answer); 
simpleComboBox.select(answerIndex); 

或者你也可以直接使用simpleComboBox.select(answer);String

情況下,如果你想顯示默認的文本,那麼你可以使用

simpleComboBox.setEmptyText("Select an answer...."); 
+0

選擇就像上面一樣執行。它選擇該項目,但它不會顯示在組合框中作爲條目。 ( – Thom

+0

)除了調用'select()'外,你可以試試'setValue(answer)'..理想情況下它應該可以工作,但是我看到需要有時調用'setValue'。示例 - 'simpleComboBox.select(answerIndex); simpleComboBox.setValue(answer);' – sanbhat

1

,你可以做到這一點使用下面的代碼的工作

String answer = simpleComboBox.getValue().toString(); //or default value 
simpleComboBox.setSimpleValue(answer); 
相關問題