java - 每次选择新项目时打印选定的组合框项目

标签 java javafx combobox

我在 Controller 类中有一个组合框:

public class Controller {

    static String selectedCountry;

    @FXML
    private ResourceBundle resources;

    @FXML
    private URL location;

    @FXML
    private ComboBox<String> comboBoxCountries;

    @FXML
    void initialize() {
        assert comboBoxCountries != null : "fx:id=\"comboBoxCountries\" was not injected: check your FXML file 'app.fxml'.";

        comboBoxCountries.setItems(Main.COUNTRIES);

        selectedCountry = comboBoxCountries.getSelectionModel().getSelectedItem();

    }
}

在 Main 中,我想在控制台中打印所选项目。每次选择新项目时,如何打印新选择的值?

public class Main extends Application {
public static void main(String[] args) {
        launch(args);
 }

    @Override
    public void start(Stage stage) throws Exception {
        System.out.println(Controller.selectedCountry);
        Parent root= FXMLLoader.load(getClass().getResource("/fxml/app.fxml"));
        Scene scene = new Scene(root,1200,900);
        stage.setScene(scene);
        stage.show();
    }

最佳答案

只需向所选项目属性添加一个监听器:

comboBoxCountries.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
    System.out.println(newValue);
});

关于java - 每次选择新项目时打印选定的组合框项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60115092/

相关文章:

java - 从方法创建对象(使用抽象方法)并将其添加到 "ArrayList"s

java - 优先打包排除和打包包含maven war插件

java - 如何获取授权表的索引、触发器和同义词

audio - 使用JavaFX,如何让应用播放本地文件而不是URI的声音?

JavaFX:如何最好地将标签放置在形状的中心?

c# - 如何将 ComboBox 绑定(bind)到一列列表

c# - 在 If 语句中使用组合框中的选定项

java - 如何将 jsp 中检索到的服务器响应映射到 iFrame

不显示应用程序或场景的 javafx 快照

java - 使用 Struts 2 填充组合框时出现问题