JavaFX "Lokasi Diperlukan" Ralat Walaupun Penjajaran Pakej
"java.lang.NullPointerException: Lokasi diperlukan." ralat dalam JavaFX timbul apabila fail FXML tidak dapat dikesan oleh aplikasi. Walaupun anda menyebut bahawa fail FXML anda berada dalam pakej yang sama dengan kelas Utama anda, adalah penting untuk menyelidiki dengan lebih mendalam kemungkinan punca isu ini.
Mengesahkan Lokasi Fail FXML
Pastikan bahawa fail FXML sememangnya berada dalam pakej yang sama dengan kelas Utama anda. Mulakan pemuat FXML menggunakan getClass().getClassLoader().getResource("FXMLFileName.fxml") dan bukannya getClass().getResource("FXMLFileName.fxml"). Ini memastikan bahawa pemuat mencari seluruh laluan kelas, termasuk pakej di mana kelas Utama anda berada.
Membetulkan Isu Maven
Jika anda menghadapi ralat ini semasa menggunakan Maven, ia adalah berkemungkinan disebabkan oleh cara Maven mengendalikan sumber. Dalam Maven, sumber dibungkus ke dalam fail JAR dengan struktur direktori tertentu. Ini boleh menyebabkan fail FXML terletak di tempat lain dari laluan yang dijangkakan berhubung dengan kelas Utama anda.
Untuk menyelesaikannya, anda boleh:
Contoh Menggunakan ResourceBundle
Untuk menggunakan ResourceBundle, tambahkan yang berikut kod ke kelas Utama anda:
ResourceBundle bundle = ResourceBundle.getBundle("com.kromalights.designer.entry.main"); URL url = bundle.getURL("main.fxml");
Kemudian, gantikan baris Parent root = FXMLLoader.load(getClass().getResource("main.fxml")); dengan:
Parent root = FXMLLoader.load(url);
Dengan menangani isu yang berpotensi ini, anda sepatutnya dapat menyelesaikan ralat "lokasi diperlukan" dalam program JavaFX anda dan berjaya memuatkan fail FXML anda.
Atas ialah kandungan terperinci Mengapa Fail JavaFX FXML Saya Membuang Ralat \'Lokasi Diperlukan\' Walaupun Berada dalam Pakej yang Sama dengan Kelas Utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!