Dalam aplikasi JavaFX anda, anda bertujuan untuk memuatkan fail FXML daripada folder sumber menggunakan kod seperti:
FXMLLoader.load(getClass().getResource("main.fxml"));
Semasa folder sumber anda berada dalam laluan binaan, anda menghadapi ralat. Untuk menyelesaikan masalah ini, mari kita terokai pilihan untuk mencari fail FXML.
Ingat bahawa carian lokasi fail FXML ialah subset carian sumber generik di Java. Fail sumber (termasuk fail FXML) ditentukan secara relatif kepada laluan kelas anda. Untuk panduan komprehensif, rujuk:
Coretan kod berikut menunjukkan pemuatan fail FXML:
FXMLLoader loader = new FXMLLoader(); loader.setLocation(getClass().getResource("/main.fxml")); Parent content = loader.load();
Terdapat beberapa pilihan untuk menentukan lokasi fail FXML dalam folder sumber anda:
1. Letakkan semua fail FXML dalam src/main/resources:
loader.setLocation(getClass().getResource("/main.fxml"));
2. Letakkan fail FXML dalam src/main/resources/fxml:
loader.setLocation(getClass().getResource("/fxml/main.fxml"));
3. Letakkan fail FXML dalam direktori sumber yang sepadan:
Dengan mengandaikan kelas anda memuatkan FXML berada dalam src/main/java/com/mycompany/myapp, anda boleh meletakkan fail FXML dalam:
src/main/resources/com/mycompany/myapp/main.fxml
Dan muatkannya menggunakan:
loader.setLocation(getClass().getResource("main.fxml"));
Pastikan IDE atau alat binaan anda menyalin fail FXML daripada direktori sumber ke direktori output binaan. Rujuk panduan tetapan Intellij untuk mengurus ini: https://stackoverflow.com/questions/25232751/how-to-convert-a-normal-java-project-in-intellij-into-a-javafx-project.
Dalam aplikasi Java Jigsaw, dapatkan sumber terus daripada kelas, bukan kelas pemuat.
// Avoid: ComboBoxStyling.class.getClassLoader().getResource("/css/styleclass.css"); // Use: ComboBoxStyling.class.getResource("/css/styleclass.css");
Atas ialah kandungan terperinci Bagaimana untuk Mencari Fail FXML dalam Projek Maven?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!