Ok guys kali ini kita saya akan membagikan cara membuat
running teks. Caranya simple aja dengan mengunakan thread di java. Untuk
memulai ikuti langkah berikut ini :
1.
Buka Netbeans
2. Buat project baru bernama RunningText
3. Buka file RunningText.java kemudian ketik kode di bawah ini.
public class RunningText extends Application { Task runningTextWorker; String message = "Halo semua ini adalah running text untuk menampilkan tulisan berjalan yang akan bergerak dari sebelah kiri ke kanan secara terus-menerus sehingga membuat tampilan menjadi lebih menarik"; Text runningText = new Text(message); HBox hBox = new HBox(); Scene scene; @Override public void start(Stage primaryStage) { BorderPane root = new BorderPane(); scene = new Scene(root, 300, 250); hBox.getChildren().add(runningText); hBox.setTranslateX(scene.getWidth()); runningTextWorker = createWorkerRunning(true); root.setTop(hBox); primaryStage.setTitle("Hello World!"); primaryStage.setScene(scene); primaryStage.show(); new Thread(runningTextWorker).start(); } private Task createWorkerRunning(final boolean running) { return new Task() { @Override protected Object call() throws Exception { int batas = hBox.widthProperty().intValue()+scene.widthProperty().intValue(); while (running) { for (int i = 1; i <= batas; i++) { if (batas == i) { hBox.setTranslateX(scene.widthProperty().intValue()); } else { hBox.setTranslateX(hBox.getTranslateX() - 1); Thread.sleep(50); System.out.println(i); } } } return true; } }; } @Override public void stop() throws Exception { super.stop(); runningTextWorker.cancel(); } /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } }
Mari kita bahas kode di atas, pertama-tama
kita buat 4 variabel. Sebuah objek dari kelas Task bernama runningTextWorker
yang digunakan untuk membuat perintah yang akan dijalankan oleh thread. String
message digunakan untuk menampung data yang akan ditampilkan lewat running
text. Kemudian kita buat sebuah objek Text bernama runningText yang digunakan
sebagai container untuk menampilkan pesan. Sebuah objek HBox disini digunakan
sebagai container untuk objek Text dikarenakan objek Text tidak mempunyai
property widthProperty yang digunakan dalam proses running nantinya. Sebuah
scene digunakan untuk menampung dan menampilkan hasil dari running tadi yang
akan ditampilkan pada objek Text.
Task runningTextWorker;String message = "Halo semua ini adalah running text untuk menampilkan tulisan berjalan yang akan bergerak dari sebelah kiri ke kanan secara terus-menerus sehingga membuat tampilan menjadi lebih menarik";Text runningText = new Text(message);HBox hBox = new HBox();Scene scene;
Langkah selanjutnya adalah hapus semua
perintah yang ada dalam method start(). Kemudian buat root yang merupakan objek
dari BorderPane dan inisialisasikan scene yang kita buat di atas tadi dan
tambahkan pada root. Kemudian tambahkan runningText yang kita buat tadi ke
dalam hBox agar runningText yang kita buat tadi dapat diubah letaknya,
mengingat node Text tidak mempunyai method widthProperty yang digunakan dalam
thread nantinya. Setelah itu ubah setTranslateX dari HBox yang kita buat tadi
sesuai dengan ukuran lebar scene agar runningText tidak tampak dan berada di
sebelah kanan dari scene.
BorderPane root = new BorderPane();
scene = new Scene(root, 300, 250);
hBox.getChildren().add(runningText);
hBox.setTranslateX(scene.getWidth());
Kemudian kita inisialisasikan
runningTextWorker yang kita buat tadi menggunakan method
createWorkerRunning(true) agar task selalu dieksekusi. Di dalam method
createWorkerRunning kita membuat looping yang akan mengeksekusi dimana ketika
property dari translateX telah mencapai batas maka setTranslateX akan dikembalikan
pada posisi awal, jika tidak maka property translateX akan dikurangi 1.
private Task createWorkerRunning(final boolean running) {
return new Task() {
@Overrideprotected Object call() throws Exception {int batas = hBox.widthProperty().intValue()+scene.widthProperty().intValue();while (running) {for (int i = 1; i <= batas; i++) {if (batas == i) {hBox.setTranslateX(scene.widthProperty().intValue());} else {hBox.setTranslateX(hBox.getTranslateX() - 1);Thread.sleep(50);System.out.println(i);}}}return true;}};}
Kemudian kita tambahkan hBox yang kita buat
tadi ke dalam root dengan mengaturnya kepada bagian atas dari layar. Kita ubah
judul dari primaryStagenya, set scennenya dan menampilkanya.
root.setTop(hBox);
primaryStage.setTitle("Running
Text");
primaryStage.setScene(scene);
primaryStage.show();
Setelah itu kita buat sebuah thread dan
tambahkan runningTextWorker yang kita buat tadi kemudian panggil method start()
dari Thread untuk memulainya. Dan setelah itu jangan lupa panggil method
requestFocus() pada primaryStage agar runningText tampak, karena saat thread
dieksekusi maka focus akan berpindah pada thread yang berjalan di background
dari aplikasi.
Sekian tutorial cara membuat runningText dari
saya, semoga bermanfat bagi agan2 semua. Sekian dan Terima Kasih
new Thread(runningTextWorker).start();Coba run dan akan tampil seperti di bawah ini:
primaryStage.requestFocus();
No comments:
Post a Comment