Я изучаю API JavaFX для приложения, над которым я работаю в данный момент, и пытаюсь использовать CheckComboBox
из ControlsFX.Обновить проблему на ControlsFX CheckComboBox display
Я сделал тест, чтобы решить проблему обновления элементов, когда я добавляю элементы в ObservableList
, который заполняет CheckComboBox
.
import org.controlsfx.control.CheckComboBox;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;
public class Testin extends Application {
private Stage main;
private FlowPane root;
private ObservableList<String> l;
public Testin(){
root = new FlowPane();
l = FXCollections.observableArrayList();
l.add("bla");
l.add("shablagoo");
l.add("tirelipimpon");
}
@Override
public void start(Stage primaryStage) {
main = primaryStage;
CheckComboBox<String> test = new CheckComboBox<>();
test.getItems().addAll(l);
Button btn = new Button("test");
btn.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
l.add("ok");
System.out.println("ok");
}
});
root.getChildren().add(test);
root.getChildren().add(btn);
Scene scene = new Scene(root);
main.setScene(scene);
main.show();
}
public static void main(String[] args) {
launch(args);
}
}
Как классический ComboBox
, когда элемент добавляется в список, он будет обновлять себя автоматически, но это не так. Должен ли я создать ListChangeListener
, который в каждом отчете об изменении этого отображается в отображаемом списке ComboBox
, или мой код неправильный?
Дополнительная информация: Я также пробую этот тест с ComboBox
, заменяя CheckComboBox
, и это хорошо работает.
Если вы изменили 'CheckComboBox' на' ComboBox', он все равно не работает. –