У меня есть поток, который постоянно обновляет/создает список:
private ObservableList<String> query() {
try {
return FXCollections.observableArrayList(getWMIValue(query, fieldName));
} catch (Exception e) {
return FXCollections.observableArrayList("");
}
}
@Override
public void run() {
while (true) {
devices = query();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(WmiAccess.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public ObservableList<String> getDevices() {
return devices;
}
и у меня есть контроллер JavaFX fxml, который добавляет этот список в ChoiceBox
@Override
public void initialize(URL url, ResourceBundle rb) {
wmiAccess = new WmiAccess(
"SELECT * FROM Win32_PnPEntity", "Name"
);
Thread wmiThread = new Thread(wmiAccess);
wmiThread.start();
choiceBox.setItems(wmiAccess.getDevices());
}
Теперь моя проблема: ChoiceBox не обновляет свое содержимое автоматически. Как мне обновить содержимое selectionBox до любого значения, содержащегося в списке «устройств»?