Rumah >Java >javaTutorial >Cara menggunakan JavaFX untuk melaksanakan antara muka grafik yang disokong berbilang bahasa dalam Java 9
Cara menggunakan JavaFX dalam Java 9 untuk melaksanakan antara muka grafik dengan sokongan berbilang bahasa
Pengenalan:
Dengan perkembangan globalisasi, sokongan berbilang bahasa telah menjadi keperluan penting untuk pembangunan perisian. Mengantarabangsakan teks dalam bahasa yang berbeza adalah langkah yang perlu apabila membangunkan antara muka grafik. Dalam Java 9, kita boleh menggunakan JavaFX untuk melaksanakan antara muka grafik dengan sokongan berbilang bahasa. Artikel ini akan memperkenalkan cara menggunakan mekanisme Resource Bundle yang disediakan oleh JavaFX untuk mencapai sokongan berbilang bahasa, dan memberikan kod sampel yang sepadan.
1. Sediakan fail sumber
Dalam projek, kami perlu menyediakan fail sumber untuk setiap bahasa dan mencapai sokongan berbilang bahasa dengan memuatkan fail sumber yang berbeza.
1. Cipta folder sumber
Dalam direktori src/main/java projek, buat folder bernama sumber. Folder ini akan digunakan untuk menyimpan fail sumber dalam bahasa yang berbeza.
2. Cipta fail sumber
Di bawah folder sumber, buat fail sumber untuk setiap bahasa. Peraturan penamaan fail sumber ialah baseName_language.properties, dengan baseName ialah nama asas bagi fail sumber dan bahasa ialah pengecam bahasa. Sebagai contoh, kita boleh mencipta fail sumber bernama bundle_zh_CN.properties untuk menyimpan teks Cina ringkas.
3. Isi kandungan sumber
Buka fail sumber dan isikan teks yang perlu diantarabangsakan mengikut pasangan nilai-kunci. Sebagai contoh, kita boleh menambah kandungan berikut pada fail bundle_zh_CN.properties:
greeting=你好!
2. Muatkan fail sumber
Dalam JavaFX, gunakan kelas ResourceBundle untuk memuatkan fail sumber. Kita perlu memilih fail sumber yang sepadan mengikut bahasa pengguna dalam program untuk dimuatkan.
1 Dapatkan Locale lalai
Locale ialah kelas yang menerangkan bahasa, negara dan maklumat lain. Kita boleh menggunakan kaedah java.util.Locale.getDefault() untuk mendapatkan Locale lalai pengguna semasa.
2. Muatkan fail sumber berdasarkan Locale
Gunakan kaedah ResourceBundle.getBundle() untuk memuatkan fail sumber yang sepadan Parameter masuk ialah nama asas dan Tempatan fail sumber. Sebagai contoh, kita boleh memuatkan fail bundle_zh_CN.properties melalui kod berikut:
ResourceBundle bundle = ResourceBundle.getBundle("bundle", Locale.CHINA);
3. Dapatkan kandungan teks
Selepas kami memuatkan fail sumber, kami boleh mendapatkan kandungan teks yang sepadan berdasarkan kunci dalam fail sumber.
1. Dapatkan kandungan teks dalam JavaFX
Dalam JavaFX, kami boleh mencapai pengantarabangsaan teks dengan menganotasi @FxText. Kita perlu menggunakan anotasi ini dalam fail FXML dan menetapkan kunci yang sepadan. Sebagai contoh, kita boleh menulis ini dalam fail FXML:
<Text fx:id="greeting" text="%greeting" />
2. Tetapkan kandungan teks
Dalam kelas pengawal JavaFX, kita boleh mendapatkan kandungan teks dengan memanggil kaedah getString() ResourceBundle dan gunakannya pada yang sepadan pada kawalan itu. Sebagai contoh, kita boleh menulis ini dalam kaedah permulaan kelas pengawal:
@FXML private Text greeting; bundle = ResourceBundle.getBundle("bundle", Locale.getDefault()); String greetingText = bundle.getString("greeting"); greeting.setText(greetingText);
4. Tukar bahasa
Untuk mencapai sokongan berbilang bahasa, kami perlu menyediakan pengguna dengan keupayaan untuk menukar bahasa. Kami boleh melaksanakan penukaran bahasa melalui peristiwa pencetus yang disediakan oleh JavaFX.
1. Bind event
Dalam kelas pengawal JavaFX, kita boleh mengikat peristiwa pencetus pada butang atau item menu yang menukar bahasa. Sebagai contoh, kita boleh mengikat acara klik pada butang bernama changeLanguageButton:
<Button fx:id="changeLanguageButton" onAction="#changeLanguageButtonClicked" />
2. Mengendalikan peristiwa
Dalam kelas pengawal, laksanakan kaedah untuk mengendalikan acara klik. Dalam kaedah ini, kita perlu menukar Tempat semasa, memuatkan semula fail sumber dan mengemas kini antara muka. Sebagai contoh, kami boleh melaksanakan kaedah changeLanguageButtonClicked() seperti ini:
@FXML private void changeLanguageButtonClicked() { if (Locale.getDefault().equals(Locale.CHINA)) { Locale.setDefault(Locale.US); } else { Locale.setDefault(Locale.CHINA); } bundle = ResourceBundle.getBundle("bundle", Locale.getDefault()); String greetingText = bundle.getString("greeting"); greeting.setText(greetingText); }
Kesimpulan:
Dengan menggunakan mekanisme ikatan sumber yang disediakan oleh JavaFX, kami boleh melaksanakan antara muka grafik dengan sokongan berbilang bahasa dengan mudah. Melalui pengenalan artikel ini, saya percaya bahawa semua orang boleh menguasai kaedah menggunakan JavaFX untuk mencapai sokongan berbilang bahasa dalam Java 9. Saya harap artikel ini dapat membantu kajian semua orang.
Kod rujukan:
Kandungan dalam fail sumber dalam bahasa yang berbeza:
bundle_zh_CN.properties
greeting=你好!
bundle.properties
greeting=Hello!
@FxText anotasi digunakan dalam fail FXML:
clickrreeee events dalam kawalanrreeeees
Atas ialah kandungan terperinci Cara menggunakan JavaFX untuk melaksanakan antara muka grafik yang disokong berbilang bahasa dalam Java 9. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!