4

アンケートを作成するループがあります。ビルドを正しいタイプと呼ぶ関数があります。コンボボックスを作成するセクションは次のとおりです。

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;
}

後でテストできるように、プロンプトにデフォルトの回答を設定したいと思います。問題は、これがコンボボックスで選択した値を設定していないことです。私は何が欠けていますか?

4

2 に答える 2

3

あなたが「答え」を持っていると仮定します。のインデックスを取得できますList<String> choices

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

simpleComboBox.select(answer);または、直接使用することができますString

デフォルトのテキストを表示したい場合は、次を使用できます

simpleComboBox.setEmptyText("Select an answer....");
于 2012-12-27T22:19:43.650 に答える
1

以下のコードを使用してこれを行うことができます

String answer = simpleComboBox.getValue().toString(); //or default value
simpleComboBox.setSimpleValue(answer);
于 2013-01-23T14:52:48.627 に答える