У меня есть тема, которая permantly обновляет/создает список:JavaFX - Автоматическое обновление choiceBox
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;
}
и у меня есть контроллер FXML JavaFX, который добавляет, что список в 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 не обновляет свой контент автоматически. Как мне удалось обновить содержимое selectBox до любого значения, которое имеет список «devices»?
Большое вам спасибо, что эта работа, но, к сожалению, ведет меня непосредственно к другой проблеме. Возможно, это глупые вопросы, это первый случай, когда я когда-либо работаю со сложным gui извините заранее. Мой ChoiceBox теперь может перечислить все устройства, но как только я его выбрал, он напрямую сбрасывается, а ChoiceBox пуст, потому что поток обновляет список. Как я могу предотвратить мой выбор из удаленных? –
Его сделали .... удалось исправить это сам. Использовал ComboBox вместо ChoiceBox. Everthing работает сейчас, как и предполагалось. еще раз спасибо –