Мое приложение периодически добавляет строки в список с использованием Thread. Я хочу добавить эти строки в ComboBox, как только они будут добавлены в список . Есть ли все равно, чтобы связать ComboBox с Список? НеКак связать ComboBox с списком в JavaFX?
Мой код:
static final int max = 20;
List<String> ips = new ArrayList<String>();
public void getIP() throws UnknownHostException {
Task task = new Task<Void>() {
@Override
public Void call() throws UnknownHostException {
InetAddress localhost = InetAddress.getLocalHost();
byte[] ip = localhost.getAddress();
for (int i = 10; i <= max; i++) {
if (isCancelled()) {
break;
}
try {
ip[3] = (byte) i;
InetAddress address = InetAddress.getByAddress(ip);
if (address.isReachable(100)) {
//============================== Populating List ===============//
ips.add(address.getHostName());
}
} catch (Exception e) {
System.err.println(e);
}
updateProgress(i, max);
}
return null;
}
};
//============================== Bind ComboBox to List Code here ===============//
indicator.progressProperty().bind(task.progressProperty());
new Thread(task).start();
}
Я использовал Platform.runLater и она работает. Однако у меня возникла странная проблема, если я открываю ComboBox, когда я заполняю ее, она отображает только один видимый элемент за раз и добавляет остальных в прокрутку. Однако, если я открою ComboBox после завершения моего потока, он отобразит все элементы просто отлично без прокрутки. –