У меня есть простое приложение javaFX с некоторыми Combobox и Textareas.
У Combobox1 есть все клиенты из массива.Когда я удаляю клиента с помощью нажатия кнопки, он удаляет этого клиента из списка, и все другие элементы fx (такие как Textareas и comboboxes) должны применить это изменение.
Способ, который я делаю, - это снова загрузить список клиентов для каждого элемента.Например,
clientTextArea.setText (MyClass.getAllclients ());
Это нормально, когда я делаю это для 2-х элементов fx, но с 10 или 100 это будет очень беспорядочно.правильный способ сообщить всем другим связанным элементам FX перезагрузить клиентский массив?
Пример
public class Worker {
private String name;
public Worker(String name){
this.name = name;
}
public void setName(String name)
{
this.name = name;
}
public String getName(){
return name;
}
}
public class Work {
private ArrayList<Worker> workerList = new ArrayList<>();
public void addWorker(Worker worker){
workerList.add(worker);
}
public boolean removeWorker(Worker worker) {
for(Worker work: workerList) {
if(worker.equals(work)){
workerList.remove(work);
return true;
}
}
return false;
}
}
public class WorkerFX {
Work work = new Work();
@FXML
private Button add, remove;
@FXML
private ComboBox<Worker> workerComBobox;
@FXML
private TextArea workerTextArea;
@FXML
private TextField workerTextField;
public void addWorker(){
Worker newWorker = new Worker(workerTextField.getText());
work.addWorker(newWorker);
workerComBobox.getItems().add(newWorker);
//now the Textfield schould automaticly also add the Worker too
}
}