Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mencari Fail FXML dalam Projek Maven?

Bagaimana untuk Mencari Fail FXML dalam Projek Maven?

Barbara Streisand
Barbara Streisandasal
2024-11-18 21:03:02516semak imbas

How to Locate FXML Files in Maven Projects?

Merujuk Fail FXML daripada Projek Maven

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.

Pencarian Sumber Generik dalam Java/JavaFX

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:

  • JavaFX Resource Lookup: https://javafx-docs.github.io/javafx-docs/javafx/2.2/resources/resource_lookup.htm
  • Panduan Eden: https://edencoding.com/javafx-resource-files

Contoh Penggunaan

Coretan kod berikut menunjukkan pemuatan fail FXML:

FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/main.fxml"));
Parent content = loader.load();

Lokasi Pilihan Resolusi

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"));

Penggunaan FXMLLoader Pengesyoran

  • Segerakan FXMLLoader melalui FXMLLoader(), bukan kaedah statik.
  • Tetapkan lokasi pada FXMLLoader yang disegerakan dan beban panggilan(), bukannya memuatkan daripada strim.
  • Gunakan getClass().getResource() untuk memperoleh berasaskan URL lokasi.

Tetapan IDE dan Binaan

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.

Aplikasi Modular Jigsaw Java

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn