javafx2.2のコンボボックスの問題に遭遇しました。これがシナリオです:
- ユーザーは「editFile」ボタンをクリックします。
- 別のペインが表示されます(setVisibleメソッドを使用)。
このペインには、6つのコンボボックスが含まれています。そのうちの3つには、cboReport、cboSales、cboSendの固定アイテムがあります。それらのうちの3つは、db(ObservableList)からデータを取得し、ペインが表示されるとデータが入力されます:cboFile、cboCustomer、cboVet
- ユーザーはcboFileからファイル番号を選択します。残りのコンボボックスは正しい値に設定されています。
- ユーザーが保存ボタンを押すと、ファイルは意図したとおりに保存されます。
- 次に、ユーザーは閉じるボタンを押します。
ウィンドウが閉じると、ペイン上のデータはresetGUI_editFilePane()メソッドを介してリセットされます。次のような行があります:
...
cboReport.getSelectionModel().clearSelection();
cboSales.getSelectionModel().clearSelection();
cboSend.getSelectionModel().clearSelection();
cboFile.getSelectionModel().clearSelection();
cboCustomer.getSelectionModel().clearSelection();
cboVet.getSelectionModel().clearSelection();
cboFile.getItems().clear();
cboCustomer.getItems().clear();
cboVet.getItems.clear();
...
ユーザーが「editFile」ボタンを押してペインを再度開くと、「fixed item」コンボボックスのみが選択をクリアしていることに気付きました。動的に塗りつぶされたコンボボックスには、選択自体の値はですが、最後に選択されたアイテムが表示されますnull
。これは私にはグラフィックのバグのように見えますか、それとも私は何か間違ったことをしていますか?
この問題を回避する方法はありますか、またはコンボボックスをリセットするための最良の方法は何ですか?
編集2014/08/27:
これは公式にはバグではありません(clearSelection()は値をクリアしません):
https ://bugs.openjdk.java.net/browse/JDK-8097244
公式の「回避策」は、選択をクリアした後にComboBoxの値をクリアすることです。
cb.getSelectionModel().clearSelection();
// Clear value of ComboBox because clearSelection() does not do it
cb.setValue(null);