Tak kenal maka tak sayang, untuk itulah mari kita buat
aplikasi hello world dengan java FX, langsung saja kita mulai pembuatannya,
ikuti langkah di bawah ini :
1.
Buka Netbeans dan pilih new Project 2. Pada bagian Categories pilih JavaFX, dan pada bagian projects pilih JavaFX Application,
kemudian klik Next
3. Kemudian pada bagian project name isikan “HelloWorld”, dan pastikan JavaFX Platform yang terpilih adalah JDK 1.8, kemudian klik Finish
Dan hasilnya seperti gambar di bawah ini
public class HelloWorld extends Application { @Override public void start(Stage primaryStage) { Button btn = new Button(); btn.setText("Say 'Hello World'"); btn.setOnAction(new EventHandler() { @Override public void handle(ActionEvent event) { System.out.println("Hello World!"); } }); StackPane root = new StackPane(); root.getChildren().add(btn); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("Hello World!"); primaryStage.setScene(scene); primaryStage.show(); } /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } }
Oke guys, sekarang saatnya kita membahas kode di atas.
Kalian perhatikan, bahwa aplikasi javaFX mengextends (mewarisi) kelas javafx.application.Application.
Aplikasi JavaFX selalu mengextends kelas javafx.application.Application. Kelas Application menyediakan siklus fungsi
seperti initialize(inisialisasi), launching, starting dan stopping
selama berjalan. JavaFX menyediakan sebuah mekanisme bagi
aplikasi Java untuk menampilkan komponen JavaFX GUI yang terpisah dari thread utama (main thread). Seperti terlihat di bawah
ini, aplikasi Hello World JavaFX mempunyai method main() dan mengoverride method start().
Di method main(),
kita launch aplikasi JavaFX dengan melemparkan argumen command-line kepada method Application.launch. Untuk mengakses argument apa saja yang
dilemparkan ke dalam method launch, kalian dapat memanggil method getParameters() dari kelas Application. Setelah method Application.launch()
dieksekusi, aplikasi akan masuk ke tahap ready, dan internal framework akan memanggil
method start() untuk mulai. Pada
titik ini, eksekusi program muncul di JavaFX
Application Thread dan tidak pada main
thread. Saat method start() dipanggil,
javafx.stage.StageObject tersedia bagi developer untuk digunakan dan
dimanipulasi. Itu artinya pemanggilan Stage, Scene dan Nodes bisa dilakukan di
dalam method start ini. Berikut ini
adalah method Application start()
yang dioverride:
@Overridepublic void start(Stage primaryStage) {...}
Saat program memulai method start(), thread yang lain muncul,
yang disebut dengan JavaFX Application
Thread. Ingatlah bahwa running pada thread aplikasi javaFX adalah sama
dengan running pada thread event di Java Swing.
Kalian perhatikan bahwa ada objek bernama Stage dan Scene. Pembuat API memodelkannya seperti sebuah teater dimana si
pemeran tampil di depan penonton. Pada analogi ini, scene terdiri dari banyak scene dimana aktor tampil. Dan sudah
pasti semua scene tampil di panggung (stage). Pada JavaFX, Stages sama dengan aplikasi window mirip dengan Java Swing API
JFrame atau JDialog pada desktop. Tergantung pada perangkat, seperti Raspberry
Pi(Raspbian), mungkin saja hanya mempunyai 1 stage. Kalian dapat menanggap
objek scene sebagai content pane, mirip dengan Java Swing
JPanel, bisa menampung banyak objek Node
(children).
Pada contoh yang telah kita buat di atas, pada method start() kita lihat bahwa untuk window(stage) pada JavaFX desktop kalian dapat
menambahkan title bar menggunakan setTitle() method. Selanjutnya, kalian
membuat node bernama root(Group), yang
ditambahkan ke objek Scene sebagai
top level container untuk aplikasi
window. Berikut potongan kode yang menunjukkan bagaimana untuk mengeset judul
dan membuat scene:
primaryStage.setTitle("Hello World");Group root = new Group();Scene scene = new Scene(root, 300, 250);
JavaFX Node adalah
kelas dasar (induk) untuk semua node scene graph yang akan dirender. Beberapa
fitur grafik dapat diaplikasikan pada Node seperti scaling, transform, translations dan effect. Beberapa node yang sering digunakan antara lain UI control
dan Shape. Mirip dengan struktur pohon data (tree
data), scene graph terdiri dari children nodes dengan menggunakan kelas
Container seperti Group atau Pane. Kalian dapat menganggap mereka sebagai kelas
Java List atau Collection yang dapat menampung objek child Node. Pada kode di atas, node Button dibuat untuk diletakkan pada scene dan diberikan sebuah event
handler(EventHandler<ActionEvent)
yang merespon ketika user memencet button. Handler
akan menampilkan tulisan “Hello World” pada console
Button btn = new Button();btn.setLayoutX(100);btn.setLayoutY(80);btn.setText("Hello World");btn.setOnAction(new EventHandler<ActionEvent>() {public void handle(ActionEvent event) {System.out.println("Hello World");}});root.getChildren().add(btn);
Lihat pada kode di atas, btn diberi EventHandler untuk
menampilkan tulisan hello world pada console. Kita juga menggunakan fitur baru
yang ada pada Java 8 yaitu lambda
expression. Kalian dapat menggantinya menjadi lebih simple seperti ini :
btn.setOnAction(e -> System.out.println("Hello World!"));
Setelah node child
ditambahkan pada Group root
lewat method getChildren().add(), kita set PrimaryStage
scene dan memanggil method show() pada objek Stage untuk
menampilkan window aplikasi JavaFX. Secara default window akan mengijinkan user
untuk minimize, maximize dan menutup aplikasi. Berikut ini adalah kode untuk
mengeset scene dan menampilkan window
(stage) aplikasi JavaFX:
primaryStage.setScene(scene);
primaryStage.show();
No comments:
Post a Comment