You are on page 1of 3

Nama : I Ketut Santa Wijaya

NIM : 2008561028

Sample Code :
package sample;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyCodeCombination;
import javafx.scene.input.KeyCombination;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class TempConverter extends Application {
private Button buttonReset ;
private Button buttonClose;
private Label labelC ;
private Label labelF ;
private TextField textFieldC ;
private TextField textFieldF ;
private EventHandler textFieldCListener;
private EventHandler textFieldFListener;
private EventHandler buttonResetListener;
private EventHandler buttonCloseListener;
@Override
public void start(Stage stage) throws Exception{
GridPane root = new GridPane();
Scene scene = new Scene(root);
initListener();
initGUI(root);
stage.setTitle("Temperature Converter");
stage.setScene(scene);
stage.show();
}
public void initListener(){
/*
* Listener of the Celsius field: convert the data from Clesius to*
Fahrenheit when the "enter" keyboard button is hit (in the Clesiusfield)
*/
textFieldCListener = new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent e) {
if (e.getCode().equals(KeyCode.ENTER)) {
String value = textFieldC.getText();
try {
float valC = new Float(value);
float valF = valC * 1.8f + 32;
textFieldF.setText(Float.toString(valF));
} catch (Exception exp) {
textFieldF.setText("");
textFieldC.setText("");
}
}
}
};
/*
* Listener of the Fahrenheit field: Convert the data from
Fahrenheitto
* Celsius when the "enter" keyboard button is hit (in the
Fahrenheitfield)
*/
textFieldFListener = new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent e) {
//TODO
}
};
/*
* Listener of the Reset button: Reset the value in the text fieldwhen
the
* Reset button is pressed
*/
buttonResetListener = new EventHandler(){
@Override
public void handle(Event event) {
//TODO
}
};
/*
* Listener of the Close button: Close the program window when
theClose
* button is pressed
*/
buttonCloseListener = new EventHandler() {
@Override
public void handle(Event event) {
Platform.exit();
}
};
}
public void initGUI(Pane root){
//TODO
}
public static void main(String[] args) {
launch(args);
}
}
Hasil Analisa singkat
Kode yang tertera diatas adalah implementasi dari kelas TempConverter dalam paket sample
yang menggunakan JavaFX untuk membuat aplikasi konversi suhu. Paket ini menyediakan GUI
(Antarmuka Grafis Pengguna) sederhana dengan dua bidang teks untuk memasukkan suhu dalam
Celsius dan Fahrenheit, serta tombol Reset dan Close.
Alur logika dari paket tersebut adalah sebagai berikut:
1. Mendefinisikan variabel-variabel instance yang digunakan dalam kelas TempConverter,
seperti tombol, label, dan bidang teks untuk Celsius dan Fahrenheit, serta pendengar
acara (event handler) yang akan menangani interaksi pengguna dengan elemen-elemen
tersebut.
2. Metode start(Stage stage) digunakan untuk memulai aplikasi dan menampilkan GUI.
Dalam metode ini, kita membuat GridPane sebagai wadah utama elemen-elemen GUI,
kemudian membuat objek Scene dengan GridPane sebagai kontennya. Setelah itu, kita
menginisialisasi pendengar acara dan menginisialisasi elemen-elemen GUI menggunakan
metode initGUI(). Terakhir, kita menetapkan judul jendela aplikasi, mengatur Scene ke
dalam Stage, dan menampilkan Stage.
3. Metode initListener() digunakan untuk menginisialisasi pendengar acara untuk elemen-
elemen GUI. Terdapat empat pendengar acara yang diinisialisasi: a. textFieldCListener:
Pendengar acara untuk bidang teks Celsius. Ketika tombol "enter" ditekan di bidang teks
Celsius, nilai yang dimasukkan akan dikonversi dari Celsius ke Fahrenheit. Hasil
konversi akan ditampilkan di bidang teks Fahrenheit. Jika terjadi kesalahan dalam
mengkonversi nilai, kedua bidang teks akan direset. b. textFieldFListener: Pendengar
acara untuk bidang teks Fahrenheit. Belum diimplementasikan sepenuhnya (TODO). c.
buttonResetListener: Pendengar acara untuk tombol Reset. Ketika tombol Reset
ditekan, nilai dalam kedua bidang teks akan direset. d. buttonCloseListener: Pendengar
acara untuk tombol Close. Ketika tombol Close ditekan, program akan ditutup.
4. Metode initGUI(Pane root) digunakan untuk menginisialisasi elemen-elemen GUI.
Dalam metode ini, elemen-elemen GUI seperti tombol, label, dan bidang teks akan dibuat
dan ditambahkan ke wadah utama GridPane (root).
5. Metode main(String[] args) digunakan untuk menjalankan aplikasi. Metode ini
memanggil metode launch(args) untuk memulai aplikasi JavaFX.

You might also like