方法 setOnAction((<no type> action) -> {}) 未定义类型 ChoiceBox<String>



每当我尝试启动Javafx应用程序时,都会收到以下错误: "方法setOnAction(( action) -> {}) 对于类型ChoiceBox是未定义的">

我认为这可能是因为我的代码中缺少导入,然后尝试使用以下导入:

导入 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上所做的更改,例如

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

相关内容

  • 没有找到相关文章

最新更新