FXMLLoader一直报location is required.
- 正确的main.java内容:
注意fxml名字前的那个路径名是宏包名,
第一位是/ 开头!!(不然会报错.)
package edu.gcsc.biogas.vl;
public class App extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("/edu/gcsc/biogas/vl/sample.fxml"));
Scene scene = new Scene(root,300,275);
primaryStage.setTitle("FXML WELCOME!!");
primaryStage.setScene(scene);
primaryStage.show();
}
}
2.此外还要在build.gradle文件里添加这段话,才能正确查找并加载FXML文件.
sourceSets {
main {
resources {
srcDirs = ["src/main/java"]
includes = ["**/*.fxml"]
}
}
}
- 正确的controller类: 注意添加了接口和重写了initialize方法.
public class Controller implements Initializable {
@FXML
private Button btn;
@Override
public void initialize(URL location, ResourceBundle resources){
}
public void pressBtn() {System.out.println("OK");}