JavaFX控制器未链接到JavaFXML文件
我正在尝试在主屏幕控制器中创建一个方法,以便在程序中设置新场景。尝试执行此操作时,出现以下错误: 解析onAction='#partAddButtonPushed'时出错,事件处理程序不在命名空间中,或者脚本中存在错误 相关的fxml代码为:JavaFX控制器未链接到JavaFXML文件,java,javafx,Java,Javafx,我正在尝试在主屏幕控制器中创建一个方法,以便在程序中设置新场景。尝试执行此操作时,出现以下错误: 解析onAction='#partAddButtonPushed'时出错,事件处理程序不在命名空间中,或者脚本中存在错误 相关的fxml代码为: <AnchorPane id="AnchorPane" prefHeight="420.0" prefWidth="1000.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://j
<AnchorPane id="AnchorPane" prefHeight="420.0" prefWidth="1000.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="john.Doe.View_Controller.MainController">
<children>
<Button id="addPartsButton" fx:id="partAdd" layoutX="190.0" layoutY="340.0" maxWidth="70.0" minWidth="70.0" mnemonicParsing="false" onAction="#partAddButtonPushed" prefWidth="70.0" text="Add">
有人知道他们为什么不连接吗?静态
load
方法不起作用。尝试创建一个新的FXMLLoader并使用它来加载。感谢您的回复,但是我认为处理onclick鼠标事件的代码没有问题。问题是fxml文件中的按钮没有正确链接到按钮处理程序,我不知道为什么。然后我觉得它是正确的。不用检查,我猜是抛出IOException
。如果无法在方法中处理,请尝试捕获并作为运行时异常重新抛出。检查导入。确保您导入了javafx.event.ActionEvent
,而不是,例如,java.awt.event.ActionEvent
@Slaw,这正是关闭的。非常感谢你!
public class MainController implements Initializable {
@FXML
private Button partAdd;
@FXML
private void partAddButtonPushed(ActionEvent event) throws IOException {
Parent partAddParent = FXMLLoader.load(getClass().getResource("/View/AddPart.fxml"));
Scene AddPartScene = new Scene (partAddParent);
Stage window = (Stage)((Node)event.getSource()).getScene().getWindow();
window.setScene(AddPartScene);
window.show();
}