Javafx 对于类型选择框<;未定义方法setOnAction(<;no type>;action)>;{});字符串>;
每当我尝试启动Javafx应用程序时,都会出现以下错误: “类型ChoiceBox的方法setOnAction((action)->{})未定义” 我认为这可能是因为我的代码中缺少导入,然后尝试使用以下导入: 导入javafx.scene.control.* 导入javafx.scene.control.ChoiceBox java-我的终端结果中的版本: java版本“1.8.0_25” Java(TM)SE运行时环境(build 1.8.0_25-b17) Java HotSpot(TM)64位服务器虚拟机(构建25.25-b02,混合模式) 我不确定导入中到底缺少了什么,这不允许我启动UI。请帮我解决这个问题。Choicebox onAction()是在JDK 8u60中引入的。由于您的是8u25,因此无法访问此方法。如果您无法更新Java版本,那么我建议您使用ChangeListener来监听对Choicebox所做的更改,例如Javafx 对于类型选择框<;未定义方法setOnAction(<;no type>;action)>;{});字符串>;,javafx,Javafx,每当我尝试启动Javafx应用程序时,都会出现以下错误: “类型ChoiceBox的方法setOnAction((action)->{})未定义” 我认为这可能是因为我的代码中缺少导入,然后尝试使用以下导入: 导入javafx.scene.control.* 导入javafx.scene.control.ChoiceBox java-我的终端结果中的版本: java版本“1.8.0_25” Java(TM)SE运行时环境(build 1.8.0_25-b17) Java HotSpot(TM)6
choiceBox.getItems().addAll("1","2","3","4");
choiceBox.setValue("3");
choiceBox.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observableValue, Number oldNumber, Number newNumber) {
//if you want to get the new value changed
System.out.println(choiceBox.getItems().get((Integer) newNumber));
//or you can invoke a function to do something else when value is changed
}
});
choiceBox.getItems().addAll(“1”、“2”、“3”、“4”);
choiceBox.setValue(“3”);
choiceBox.getSelectionModel().selectedIndexProperty().addListener(新的ChangeListener()){
@凌驾
更改公众假期(ObservalEvalue可能意味着ChoiceBox
没有setOnAction
方法。是在版本8 update 60中添加的。它在以前的版本中不可用,就像您正在使用的版本一样。由于某些原因,我无法控制更新java版本,如果不是通过更新到版本8 update 60,我不能通过导入支持此功能?您可以尝试choiceBox.addEventHandler(ActionEvent.ACTION,event->{})
。从未测试过,所以我不知道它是否有效,但快速测试可能没有什么坏处。这确实是一个旧的fx版本-即使对于fx8;)最好更新到当前版本(java/fx12),或至少更新到当前版本的8,如果由于某种原因您无法更新到最新版本。