- Buat Display baru
- Buat satu atau lebih Shell
- Buat manager layout untuk Shell baru
- Buat widget di dalam shell
- Buka jendela shell
- Buat perulangan pengirim event
- Buang (dispose) display dan widget-widget lainnya
- Tentunya import berbagai paket yang diperlukan oleh program
package helloswt; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; public class HelloSWT { /** * @param args */ public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout( new RowLayout()); Label label = new Label(shell, SWT.NONE); label.setText("Hello, World!"); shell.pack(); shell.open(); while (!shell.isDisposed()) if (!display.readAndDispatch()) display.sleep(); display.dispose(); label.dispose(); } }
1. Membuat Display baru
Membuat Display dapat dilakukan dengan membuat instansi dari objek bertipe Display, misalnya seperti perintah berikutDisplay display = new Display();
2. Membuat Shell baru
Membuat Shell dapat dilakukan dengan membuat instansi dari objek bertipe Shell, misalnya seperti perintah berikutShell shell = new Shell(display);
Shell
mengambil parameter yang merupakan induk di mana shell ini akan diletakkan. Pada pernyataan di atas, kita membuat objek shell
bertipe Shell
yang memiliki induk objek display
.Shell adalah jendela suatu aplikasi. Shell tertinggi adalah shell yang berada langsung di bawah objek bertipe Display, dan merupakan jendela utama suatu aplikasi. Shell sebenarnya adalah widget komposit, yaitu suatu widget yang terdiri dari beberapa widget lain. Oleh karenanya shell juga bisa berisi shell lain. Untuk aplikasi sederhana yang menampilkan kata "Hello World!", kita hanya membutuhkan satu shell saja yang kita letakkan pada objek display.
3. Membuat manager layout untuk Shell baru
Untuk membuat manager layout, kita menggunakan metode instansi dari objek shell, yaitusetLayout()
yang mengambil parameter jenis layout yang akan disusun pada shell. Misalnya,shell.setLayout( new RowLayout());
RowLayout
adalah kelas layout yang digunakan objek shell untuk mengatur objek widget di dalamnya.Manager layout digunakan untuk mengatur secara otomatis peletakkan setiap widget. Pada SWT, objek komposit seperti Shell tidak mengetahui bagaimana widget harus ditampilkan. Oleh karenanya jika kita tidak memberikan manager layout kepada objek bertipe Shell, maka tidak ada widget yang akan ditampilkan.
Bahasan khusus tentang layout cukup kompleks, dan karenanya kita akan bahas tersendiri pada bagian selanjutnya.
4. Membuat widget di dalam shell
Widget adalah komponen pembangun GUI. Menu, tombol, teks, kotak cek, kotak input teks, hingga kanvas, adalah contoh-contoh widget. Setiap widget memiliki sifat dan cara kerja yang berbeda-beda. Pada contoh ini, kita menggunakan widget yang sangat sederhana yang dinamakan Label. Widget ini digunakan untuk menampilkan teks, misalnya digunakan sebagai label atau pertanyaan pada suatu input teks.Pada contoh HelloSWT, kita gunakan konstruktor yang mengambil 2 parameter. Yang pertama, adalah kontainer induk di mana Label ini akan ditampilkan, dan parameter kedua adalah bit gaya.
Label label = new Label(shell, SWT.NONE);
label.setText("Hello, World!");
5. Membuka jendela shell
Setelah Display, Shell, dan widget-widgetnya disiapkan, kita perlu secara eksplisit memerintahkan shell untuk membuka jendela dan menggambar seluruh widget yang sudah disiapkan. Untuk ini kita gunakan perintahshell.open();
6. Membuat perulangan pengirim event
SWT mengharuskan kita untuk membuat sendiri perulangan untuk mengirimkan event. Artinya, blok perintah berikut ini "harus" selalu ada dalam semua aplikasi SWT yang akan kita buat.while (!shell.isDisposed()) if (!display.readAndDispatch()) display.sleep();
7. Membuang (dispose) display dan widget-widget lainnya
Karena SWT bekerja langsung dengan widget bawaan sistem operasi, maka tanggung jawab untuk menghapus komponen GUI ada di tangan programmernya. Hal ini disebabkan widget tersebut berada di luar jangkauan pemulung memori Java yang hanya bisa meraih objek yang dibuat dan dijalankan dalam JVM (Java Virtual Machine).Untuk menghapus widget dari memori, kita dapat menggunakan metode
dispose()
yang dimiliki oleh hampir semua widget SWT. Pada contoh program ini, kita memiliki 2 widget, yaitu shell dan label, sehingga keduanya harus dihapus dengan menggunakan perintahdisplay.dispose(); label.dispose();
8. Mengimport berbagai paket yang diperlukan oleh program
Kita bisa menggunakan Eclipse untuk membantu kita mengimpor setiap paket (seperti yang diilustrasikan pada bagian sebelumnya), atau menggunakan wildcard sepertiimport org.eclipse.swt.widgets.*
Beberapa paket penting yang tersedia pada SWT :
Nama Paket | Kegunaan |
org.eclipse.swt | Berisi kelas SWT, kumpulan konstanta, dan kelas-kelas pengecualian dan kesalahan |
org.eclipse.swt.widgets | Widget dan kelas-kelas yang berhubungan dengannya, misalnya menu, kotak dialog, dukungan event, kelas super abstrak untuk layout, dan sebagainya |
org.eclipse.swt.events | Event tingkat tinggi, pendengar event, dan colokan (adapter) |
org.eclipse.swt.layout | Kelas layout standar seperti FillLayout, RowLayout, GridLayout, FormLayout, dan kelas-kelas lainnya |
org.eclipse.swt.graphics | Huruf, warna, gambar, dan operasi grafik dasar, seperti untuk menggambar garis dan lingkaran |
org.eclipse.swt.custom | Widget buatan sendiri dan kelas lain yang dibuat khusus untuk Eclipse; tidak bergantung pada platform apapun (implementasinya sama pada semua sistem operasi) |
org.eclipse.swt.dnd | Kelas bantuan untuk melakukan drag-and-drop pada berbagai platform |
org.eclipse.swt.accessibility | Perluasan untuk memberikan bantuan dan dukungan untuk orang cacat |
org.eclipse.swt.printing | Dukugan printer dan kotak dialog untuk melakukan percetakan |
org.eclipse.swt.program | Berisi kelas Program, untuk mempermudah pada saat program dijalankan, pemetaan dokumen, dan icon; juga dibuat untuk Eclipse, akan tetapi sangat bergantung pada platformnya (implementasinya bisa berbeda untuk setiap sistem operasi) |
org.eclipse.swt.browser | Menyediakan widget sebagai web broswer, dan kelas-kelas yang mendukungnya. Menggunakan browser bawaan sistem operasi untuk implementasinya |
org.eclipse.swt.awt | Menyediakan dukungan untuk membuat UI yang berisi campuran widget dari SWT dan AWT |
org.eclipse.swt.win32.ole | Hanya tersedia pada Windows; menyediakan fasilitas untuk mengakses OLE (Object Linking and Embedding) |
0 komentar:
Posting Komentar