小编dev*_*ham的帖子

javafx ComBobox在所选项目值上添加侦听器

我需要测试所选项的值来调用不同的方法,所以我写这段代码添加一个监听器,但代码生成语法错误

@FXML
private JFXComboBox<String> cmbComp;

cmbComp.valueProperty().addListener(new ChangeListener<String>() {
        public void changed(ObservableValue<String> composant, String oldValue, String newValue) throws SQLException {

            if(/*test item value*/){
                /*do something*/
            }else{
                /*do other thing*/
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

我也不需要旧值和新值,只需测试选定的值,我怎么能传递参数?


我发现错误,这里是新代码,我希望它能帮助别人

cmbComp.getSelectionModel().selectedItemProperty().addListener( (options, oldValue, newValue) -> {
           System.out.println(newValue)
    }
    ); 
Run Code Online (Sandbox Code Playgroud)

combobox javafx

13
推荐指数
2
解决办法
2万
查看次数

javafx异常:已指定控制器值

我正在通过将一些参数传递给此窗口的特定内部方法来调用加载窗口的方法,但我有这个异常:

GRAVE: null
javafx.fxml.LoadException: Controller value already specified.
unknown path:12
Run Code Online (Sandbox Code Playgroud)

这是我的方法

public void openDef(String sys, String comp, String code) throws Exception {
    Stage defStage = new Stage();
    FXMLLoader loader = new FXMLLoader();
    DefTableController cont = new DefTableController();//calling class controller
    loader.setController(cont);
    Parent frame = loader.load(getClass().getResource("defTable.fxml").openStream());
    cont.getSysChoice(sys, comp, code);//call the method by passing parameters
    Scene sceneDef = new Scene(frame);

    defStage.setTitle("Défaillance du " + comp);
    defStage.setScene(sceneDef);
    defStage.show();
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它认为控制器已经设置好了?以及如何解决这个问题?谢谢

javafx

6
推荐指数
1
解决办法
5219
查看次数

标签 统计

javafx ×2

combobox ×1