Thursday, May 26, 2016

Membuat Aplikasi Hello World


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:
@Override
public 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