Pengantar JavaFX
Ketika kami menyebutkan perpustakaan antarmuka grafis Java, kami biasanya mendengar ayunan, atau AWT yang lebih tua, termasuk keduanya yang diperkenalkan di banyak buku. Banyak sekolah dan kelas pelatihan juga mengajarkan kedua teknologi ini. Namun pada kenyataannya, kedua teknologi telah lama sudah ketinggalan zaman. Meskipun tidak sulit untuk belajar ayunan, sebenarnya sangat sulit untuk menulis antarmuka menggunakannya. Karena antarmuka dan kodenya tidak dipisahkan, kode harus diisi dengan sejumlah besar koordinat saat menulis, dan sangat sulit untuk dimodifikasi. Hal terbaik dalam hal ini adalah WPF Microsoft, dan saya hanya bisa mengatakan siapa yang bisa menggunakannya dan siapa yang mengetahuinya.
Tentu saja, meskipun menulis program grafis klien adalah kelemahan Java, Java belum menyerah pada upaya ini. JavaFX yang diperkenalkan hari ini adalah teknologi terbaru bagi Java untuk menulis program antarmuka grafis. Jika Anda berencana untuk menulis program antarmuka grafis di Java tanpa beban historis, sangat disarankan untuk menggunakan JavaFX.
Ini adalah sumber daya dan dokumentasi di JavaFX di situs web resmi Oracle.
Ini adalah program sampel resmi, kami dapat merujuk ke bagian JavaFX untuk mempelajari cara menggunakannya. Di bawah ini adalah salah satu program JavaFX fraktal. Mengklik pada angka di atas dapat memasukkan tampilan mikroskopis yang berbeda. Rasanya seperti menonton dunia virus mikroskopis, yang sangat mengejutkan.
Cara menginstal
Selama Anda memiliki versi terbaru dari JDK 8 yang diinstal, Anda dapat menggunakan Perpustakaan JavaFX. Jika tidak diinstal, maka mulailah menginstalnya dengan cepat.
Mulailah dengan cepat
Program pertama
Buat proyek baru, lalu tulis kelas berikut, lalu kompilasi dan jalankan untuk melihat hasilnya. Tidak perlu menjelaskan program ini. Jika Anda memiliki pengalaman dalam mempelajari ayunan dan kerangka kerja antarmuka grafis lainnya, harus sangat mudah untuk memahami kode ini. Tentu saja, karena JavaFX adalah hal baru, saya juga menggunakan fitur baru Java 8 - Lambda Expressions.
Paket yitian.javafxsample; import javafx.application.application; impor javafx.scene.scene; impor javafx.scene.control.button; impor javafx.scene.layout.stackpane extending {startring stage {stage stage {stage fase {stage fase {stage fase {stage { btn = tombol baru (); btn.setText ("halo, dunia"); btn.setonaction (event -> {System.out.println ("halo, dunia!");}); stackpane root = scene new (); root.getChildren (); add (btn); scene scene = hello (); root. World! "); Primerstage.setscene (adegan); primerstage.show ();} public static void main (string [] args) {launch (args);}}Tangkapan layar yang sedang berjalan adalah sebagai berikut.
Input pengguna
Program ini dapat digunakan untuk menangani situasi login pengguna. Kode adalah sebagai berikut, dan bagian -bagian penting telah dikomentari. Bagian terakhir dari kode menggunakan fungsi setonaction untuk menambahkan acara klik ke tombol, dan teks akan ditampilkan saat tombol diklik.
Public Class UserInput memperluas aplikasi {@Override public void start (tahap primerstage) melempar pengecualian {// grid tata letak gridpane grid = new gridpane (); grid.setalignment (pos.center); // grid spacing grid.sethgap (10); // grid horizontal grid vertikal grid. Insets (25, 25, 25, 25)); // adegan adegan adegan baru = adegan baru (grid, 300, 275); primarystage.setscene (scene); // tambahkan titletext sceneitle = teks baru ("selamat datang", scenetitle.setfont (font.font ("tahoma", font weight.normal, 20) (20) (20) (font 1); // Tambahkan tag dan kotak teks Username new label ("nama pengguna:"); grid.add (nama pengguna, 0, 1); textfield userTextField = Textfield baru (); grid.add (Usertextfield, 1, 1);/ Passwordfield (); grid.add (pwbox, 1, 2); // Tambahkan tombol pengiriman btn = tombol baru ("Login"); hbox hbbtn = hbox baru (10); hbbtn.setalignment (tech.bottom_right); hbbtn.getChildren (). Add (btn); grup. ActionTarget = new Text (); grid.add (ActionTarget, 1, 6); btn.setonaction (event -> {actionTarget.setFill (color.firebrick); actionTarget.settext ("Login");}); primerStage.settitle ("Javafx welcome"); {launch (args);}}Tangkapan layar dari program yang berjalan adalah sebagai berikut.
Program ini sebenarnya tidak sulit, menggunakan tata letak grid dan kemudian menambahkan setiap elemen ke grid. Untuk makna atribut tata letak grid, silakan merujuk ke angka resmi.
Merancang antarmuka pengguna dengan FXML
Kerangka kerja antarmuka grafis modern mendukung pemisahan antarmuka dan kode, dan bahasa deskriptif yang lebih umum digunakan adalah XML, seperti QML untuk QT dan XAML untuk WPF. Tentu saja, JavaFX juga memiliki bahasa serupa yang disebut FXML. Jika Anda perlu mengetahui FXML secara detail, Anda dapat merujuk pada artikel pengantar FXML di situs web resmi Oracle.
Mari kita tulis ulang contoh kecil di atas di FXML, dan setiap bagian dikomentari. Jika Anda telah mempelajari bahasa deskriptif serupa lainnya, Anda akan menemukan bahwa ini sebenarnya serupa. Satu -satunya hal yang perlu diperhatikan adalah atribut pengontrol FX: dalam tata letak, yang menentukan pengontrol, dan fungsi pengontrol adalah dengan menulis kode antarmuka yang sesuai.
<? Xml Version = "1.0" encoding = "UTF-8"?> <!-Impor kelas-> <? Impor javafx.geometry.insets?> <? javafx.scene.text.text?> <!-set tata letak-> <gridpane xmlns = "http://javafx.com/javafx" xmlns: fx = "http://javafx.com/fxml" fx: controller = "yitian.javaFx.conkon" fx " prefwidth = "600.0" Alignment = "center" hgap = "10" vgap = "10"> <padding> <insets top = "25" right = "25" Bottom = "10" Left = "25"/> </adding> <!-Teks selamat datang-> <teks = "Welcome" gridpane.columnindex = "0 Gridpane.columnspan = "2"> <font> <font name = "consolas" size = "20"/> </font> </text> <label text = "nama pengguna:" gridpane.columnindex = "0" gridpane.rowindex = "1"/<textfield gridpane.colume.colume = "1 "Rowx =" 1 "/<textfield gridpane.colume. Text = "Kata Sandi:" GridPane.ColumnIndex = "0" gridpane.rowIndex = "2"/> <Passwordfield fx: id = "kata sandi" gridpane.columnIndex = "1" gridpane.rowindex = "2"/> <"Tombol dan teks cepat-> <hbox spacing =" 10 "ALIIG =" BOWNT "BOWKPANE" BOWKPANE "SPACING =" 10 " Gridpane.rowIndex = "4"> <tombol teks = "tunjukkan kata sandi" onaction = "#showpasswordbutton"/> </hbox> <text fx: id = "hinttext" gridpane.columnindex = "0" gridpane.columnspan = "2" Gridpane.halignment = "gridpane.columnspan =" 2 "Gridpane.halignment =" Right "" right "" gridpane "" 2 "gridpane.
Di bawah ini adalah pengontrol yang sesuai dengan file FXML ini, yang merupakan kelas Java standar. ID yang ditentukan oleh atribut FX: ID di FXML dapat dinyatakan sebagai bidang kelas dalam pengontrol, di mana Anda dapat berinteraksi dengan komponen antarmuka. Dengan cara yang sama, event handler yang dinyatakan oleh onaction adalah metode dalam pengontrol. Perhatikan bahwa bidang dan metode ini perlu dijelaskan menggunakan anotasi @FXML.
impor javafx.event.actionevent; import javafx.fxml.fxml; import javafx.scene.control.passwordfield; import javafx.scene.text.text; controller kelas publik {@fxml Teks privat hinttext; @fxml kata sandi pribadifieldfield; {HintText.SetText ("Tampilkan Kata Sandi:" + Passwordfield.getText ());}}Hal terakhir yang dimodifikasi adalah program utama. Dalam program utama, Anda perlu menggunakan FXMLLOADER untuk memuat sumber daya FXML, dan bagian lainnya tidak banyak berubah.
kelas publik USEFXML memperluas aplikasi {@Override public void start (tahap primarystage) melempar pengecualian {parent root = fxmlloader.load (getClass (). getResource ("ui.fxml"); adegan adegan = adegan baru (root, 300, 275); primarypestage. Fxml "); primarystage.setscene (adegan); primarystage.show ();} public static void main (string [] args) {launch (args);}}Tangkapan layar dari program yang berjalan adalah sebagai berikut.
Jika Anda ingin memodifikasi gaya komponen, JavaFX menyediakan antarmuka CSS, memungkinkan kami untuk memodifikasi gaya secara langsung menggunakan file CSS. Pertama, Anda perlu menambahkan referensi ke stylesheet yang sesuai di file FXML. @ Di depan nama file berarti bahwa file CSS dan file FXML berada di direktori yang sama.
<GridPane> <stylesheets> <url value = "@style.css"/> </stylesheets> <gridpane/>
Lembar gaya mirip dengan lembaran gaya biasa, kecuali bahwa awalan khusus Javafx- diperlukan.
#btnshowpassword {-fx-background-color: deeppink;}Pemilih ID digunakan di atas, jadi sesuai dengan itu, atribut ID juga diperlukan dalam FXML.
<Tombol id = "btnshowpassword" text = "showpassword" onaction = "#showpasswordbutton"/>
Program setelah kustomisasi ditunjukkan pada gambar. Saya hanya memodifikasi warna latar belakang tombol. Bahkan, ada banyak gaya yang dapat diubah, termasuk latar belakang program, dll. Siswa yang tertarik dapat mencobanya sendiri.
Meringkaskan
Di atas adalah semua tentang artikel ini tentang pemahaman awal JavaFX. Jika ada siswa yang ingin menggunakan Java untuk menulis program antarmuka grafis, Anda dapat mempertimbangkan untuk menggunakan JavaFX, yang merupakan pilihan yang sangat baik. Semoga ini akan membantu semua orang. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!