Rumah >Java >javaTutorial >JavaFX FXML: Kaedah Pembina lwn. `memulakan()` – Apakah Perbezaannya?
JavaFX FXML Controller: Membezakan Peranan Pembina dan Kaedah Permulaan
Dalam JavaFX, FXML digunakan untuk membina antara muka pengguna secara deklaratif. Kelas pengawal, seperti yang dinyatakan dalam atribut fx:controller bagi fail FXML, berfungsi sebagai logik interaksi untuk elemen GUI. Dua kaedah kitar hayat, pembina dan kaedah initialize(), memainkan peranan penting dalam memulakan pengawal.
Pembina dipanggil dahulu, diikuti dengan suntikan medan @FXML dengan objek Java yang sepadan. Selepas itu, kaedah initialize() dilaksanakan.
Constructor vs. Initialize Method
Perbezaan utama antara pembina dan kaedah initialize() terletak pada pemasaan pelaksanaan mereka dan akses mereka kepada anotasi FXML. Pembina melaksanakan terlebih dahulu, tetapi ia tidak boleh mengakses medan beranotasi dengan @FXML. Medan ini hanya boleh diakses dalam kaedah initialize().
Ini membolehkan pembina melaksanakan tugas sebelum suntikan komponen FXML, manakala kaedah initialize() boleh mengakses dan memanipulasi komponen yang disuntik ini.
Penggunaan Praktikal
Pembina hendaklah digunakan untuk tugasan yang perlu dilakukan sebelum GUI dimuatkan sepenuhnya, seperti membaca data daripada pangkalan data. Kaedah initialize() pula, sesuai untuk memulakan komponen GUI, seperti menetapkan pengendali acara atau mengubah suai nilai lalainya.
Contoh
Pertimbangkan kod berikut:
public class MainViewController { // Constructor public MainViewController() { System.out.println("first"); } // Initialize method @FXML public void initialize() { initializeComponents(); System.out.println("second"); } private void initializeComponents() { // Initialize GUI components, e.g., add event handlers } }
Dalam contoh ini, pembina mencetak "pertama" sebelum sebarang objek Java disuntik ke dalam medan beranotasi FXML. Kemudian, kaedah initialize() mencetak "second" selepas medan ini disuntik. Ini menunjukkan pelaksanaan berurutan kaedah kitaran hayat ini.
Atas ialah kandungan terperinci JavaFX FXML: Kaedah Pembina lwn. `memulakan()` – Apakah Perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!