Rumah  >  Artikel  >  Java  >  Mengapa saya mendapat IllegalAccessError apabila mencipta Label dalam JavaFX 11?

Mengapa saya mendapat IllegalAccessError apabila mencipta Label dalam JavaFX 11?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 22:12:021006semak imbas

Why am I getting an IllegalAccessError when creating a Label in JavaFX 11?

JavaFX 11: IllegalAccessError semasa mencipta Label

JavaFX 11 memperkenalkan perubahan ketara pada rangka kerja, memisahkannya daripada JDK. Perubahan ini telah membawa kepada isu biasa di mana pengguna menghadapi IllegalAccessError semasa membuat Label atau kawalan lain.

Punca Isu

Ralat disebabkan oleh konflik antara modul JavaFX dan laluan modul projek. JavaFX 11 menggunakan sistem modular, di mana perpustakaan dibungkus sebagai modul yang boleh ditambah pada projek anda mengikut keperluan. Walau bagaimanapun, secara lalai, IntelliJ IDEA tidak mengkonfigurasi laluan modul untuk JavaFX dengan betul.

Penyelesaian

Untuk menyelesaikan isu ini, anda perlu menambah modul JavaFX secara manual ke laluan modul projek anda dan tentukan modul yang anda mahu gunakan.

  1. Tambah JavaFX SDK sebagai Perpustakaan:

    • Dalam IntelliJ IDEA , klik kanan pada projek anda dalam Project Explorer dan pilih "Tambah Sokongan Rangka Kerja."
    • Pilih "JavaFX" daripada senarai dan pilih versi yang sesuai (11.0.2 dalam kes ini).
  2. Konfigurasikan Pilihan VM:

    • Pergi ke Jalankan > Edit Konfigurasi.
    • Dalam medan VM Options, tambahkan yang berikut:

  3. Nyatakan Kebergantungan Modul:

    • Dalam fail pom.xml, tambahkan kebergantungan berikut:

      • <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>11</version>

Nota Tambahan

  • Ganti "/path/to/javafx-sdk/lib" dengan laluan sebenar ke direktori perpustakaan JavaFX SDK.
  • Jika anda perlu menggunakan modul JavaFX tambahan, nyatakannya dalam argumen --add-modules (cth., --add-modules javafx.fxml).
  • Anda boleh mengesahkan bahawa modul yang betul sedang digunakan dengan menambahkan bendera --list-modules pada VM Options.

Dengan mengikut langkah ini, anda sepatutnya dapat menyelesaikan IllegalAccessError apabila mencipta Label atau kawalan lain dalam JavaFX 11.

Atas ialah kandungan terperinci Mengapa saya mendapat IllegalAccessError apabila mencipta Label dalam JavaFX 11?. 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