【问题标题】:How to iterate through a JavaFX-combobox?如何遍历 JavaFX 组合框?
【发布时间】:2013-06-29 21:52:20
【问题描述】:

我的问题很简单:如何遍历 javafx-combobox?我尝试了很多,但没有任何效果。 foreach-construct 不起作用,combobox 甚至没有大小和单个对象检索的方法,从而消除了使用 simple-for-loop 的可能性。我错过了什么吗?

【问题讨论】:

    标签: java combobox foreach iterator javafx


    【解决方案1】:

    是的,你错过了..或者可能没有。但是,尽管如此,只需从您的 ComboBox 返回对象的 ObservableList 并使用 for each 来遍历该集合。这是一个例子:

    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();
        }
    }
    

    【讨论】:

    • 啊,你要声明一个 ObservableList...谢谢。但我想知道为什么会这样:我试过 for(String item: comboBox.getItems() 并且 javac 抱怨。实际上,除了您声明 ObservableList 包含字符串这一事实之外,您的代码也是如此。奇怪...
    • 可能是因为您没有为 ComboBox 中的项目指定数据类型。这个:ComboBox&lt;String&gt; comboBox = new ComboBox&lt;String&gt;();
    • 是的,这就够了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-06-26
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多