如何遍历JavaFX-combobox?

时间:2013-07-02 13:38:27

标签: java combobox foreach iterator javafx

我的问题很简单:如何迭代javafx-combobox?我尝试了很多,没有任何作用。 foreach-construct不起作用,combobox甚至没有大小和单个对象检索的方法,消除了使用简单循环的可能性。我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

是的,你错过了......或许不是。但是,尽管如此,只需从ObservableList返回ComboBox个对象,并使用每个对象来遍历该集合。这是一个例子:

import javafx.application.Application;
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.GridPane;
import javafx.stage.Stage;

public class ComboBoxExample extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        GridPane gridPane = new GridPane();
        Button button = new Button("Print items from ComboBox");
        final ComboBox<String> comboBox = new ComboBox<String>();
        //Add some items
        comboBox.getItems().addAll("John","Jane","Laina");

        button.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent actionEvent) {
                //To iterate through ComboBox
                ObservableList<String> items = comboBox.getItems();
                for(String item : items){
                    System.out.println(item.toString());
                }
            }
        });

        gridPane.add(comboBox,0,0);
        gridPane.add(button,0,1);

        primaryStage.setScene(new Scene(gridPane,320,280));
        primaryStage.show();
    }
}