-1
我有一個自定義ChoiceBox上的JavaFX choicebox做出變化,這我動態填充像這樣:怎麼聽
public class CustomChoiceBox {
public void addItems(List<Item> items) {
// Populate choicebox
for(Item item : items) {
CustomOption choice = new CustomOption(String.valueOf(item.getId()), item);
this.getItems().add(choice);
}
}
}
CustomOption定義如下自定義類:
public class CustomOption extends Observable{
private String key;
private Object value;
public CustomOption(String key, Object value) {
this.key = key;
this.value = value;
}
}
我想能夠聽取用戶何時作出不同選擇並獲得該選擇的價值。 所以我添加了一個監聽器:
myChoiceBox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<CustomOption>() {
@Override
public void changed(ObservableValue<? extends CustomOption> observable,
CustomOption oldValue, CustomOption newValue) {
System.out.println(newVaue.getValue());
}
});
然而,當我改變選擇這個代碼不運行。 我也用myChoiceBox.valueProperty嘗試()
是吧'CustomOption',或'ChoiceBoxOption'試試?據推測,它應該是'公共類CustomChoiceBox擴展ChoiceBox'(或'ChoiceBox ',無論你實際使用)。如果這些問題得到解決,那麼您發佈的代碼並沒有明顯的錯誤,所以問題可能在其他地方。您應該創建一個[MCVE]並編輯您的問題以包含它。 –