我是javaFx的新手,我只在@fxml函数和initialize函数中发现@fxml字段不为null,否则@fxml字段将始终为null,是吗?如果是这样,我如何在加载fxml之后立即使用@fxml字段(不使用lookup),就像这样?(以下代码将引发null异常)
@FXML Label resultTF; .... FXMLLoader loader=new FXMLLoader(); loader.setController(this); Parent pane = loader.load(getClass().getResource("/fxml/Main.fxml")); this.resultTF.setText("");
我要做的就是在fxml中声明一个id为id的字段,并在加载fxml之后立即使用它,例如wpf,flex
您正在调用静态FXMLLoader.load(URL)方法。
FXMLLoader.load(URL)
由于这是一个静态方法,因此它对您要用来调用它的实例一无所知(无论如何,这都是不好的做法;您的IDE应该对此发出警告)。具体来说,它没有控制器集。
您需要调用一个实例load()方法,例如
load()
FXMLLoader loader=new FXMLLoader(); loader.setController(this); loader.setLocation(getClass().getResource("/fxml/Main.fxml")); Parent pane = loader.load();