Kelas
Kelas
Suatu tombol bisa diisi teks atau gambar, tapi tidak
keduanya secara bersamaan. Teks yang diisi pada suatu tombol tidak
dapat berisi baris baru '\n' atau '\r'. Berikut ini adalah beberapa
metode yang digunakan untuk mengeset dan mengambil teks dan gambar pada
tombol.
Berikut ini adalah contoh mengeset teks dan gambar pada suatu tombol :
Kita juga bisa mengatur kerapatan (alignment) suatu teks atau gambar. Selain menggunakan bit gaya
Misalnya,
Tombol SWT.PUSH
Tombol ini memiliki sifat tombol biasa, yaitu ketika di klik tombol akan tampil seperti ditekan, dan ketika dilepas maka tombol akan kembali seperti biasa. Tombol ini memiliki event berikut :
Misalnya untuk menambahkan listener untuk event yang
terjadi ketika tombol ditekan, kita bisa menggunakan SWT.Selection,
misalnya pada contoh berikut :
Tombol SWT.ARROW
Tombol ini secara perilaku mirip dengan SWT.PUSH, akan tetapi perbedaannya tombol ini tidak bisa diisi teks atau gambar. Tombol ini akan menggambar tanda panah, yang arahnya tergantung dari bit gaya yang diberikan, bisa ke kiri, kanan, atas atau bawah.
Tombol SWT.TOGGLE
Berbeda dengan tombol SWT.PUSH, tombol ini ketika diklik akan berada dalam posisi tertekan terus walaupun mouse sudah dilepaskan. Untuk mengembalikannya, tombol ini harus diklik kembali. Karena tombol ini bisa memiliki dua keadaan, yaitu keadaan tertekan dan keadaan terlepas, ada dua metode yang kita bisa gunakan untuk mengeset keadaan tombol atau untuk mengambil keadaan tombol saat itu, yaitu
Tombol SWT.CHECK
Tombol SWT.CHECK tidak berbentuk seperti tombol, akan tetapi perilakunya mirip dengan SWT.TOGGLE. Secara tampilan, SWT.CHECK ditampilkan seperti tombol kotak tik, yang apabila diklik kotak tik akan tercontreng. Untuk menghilangkan contrengan, klik kembali kotak cek tersebut.
Karenanya, mirip seperti SWT.TOGGLE, tombol ini memiliki dua keadaan tetap, yaitu kondisi tercontreng dan tidak tercontreng. Untuk mengeset keadaan ini, gunakan metode yang sama dengan SWT.TOGGLE, yaitu
Tombol SWT.RADIO
Tombol ini mirip seperti SWT.CHECK, di mana apabila kita mengklik tombol radio, maka tombol tersebut berada dalam keadaan terpilih. Perbedaannya, jika beberapa tombol SWT.RADIO berada dalam satu induk, maka hanya satu tombol radio saja yang bisa aktif. Artinya jika kita mengklik tombol radio kedua, maka tombol ini akan terpilih dan yang lainnya akan mati. Untuk mengesetnya, gunakan metode yang sama seperti pada SWT.CHECK dan SWT.TOGGLE.
Biasanya, hanya satu tombol radio pada suatu kotak dialog atau jendela tidak masuk akal. Karena hanya ada tombol radio yang bisa aktif, maka satu tombol radio ini akan selalu aktif, sehingga percuma untuk diletakkan dalam GUI. Jika ada dua tombol radio, perilakunya persis sama dengan satu tombol SWT.CHECK (jika satu aktif, maka yang lainnya pasti tidak aktif). Untuk itu tombol radio biasanya digunakan untuk meminta user memilih satu dari sekian banyak pilihan.
Berikut ini adalah contoh program yang bisa Anda unduh di sini. Program ini akan menggambar beberapa jenis tombol. Jika salah satu tombol ditekan, maka warna latar belakang jendela akan berubah-ubah. Warna-warna ini disimpan dalam palette warna dalam bentuk array. Jika warna terakhir sudah ditampilkan, kemudian tombol ditekan kembali, maka warna pertama akan ditampilkan kembali.
Button
melambangkan suatu tombol yang jika ditekan atau dilepaskan akan melepaskan event tertentu.Kelas
Button
memiliki beberapa bit gaya :Bit gaya | Tampilan (pada Linux) | Keterangan |
SWT.ARROW | Hanya salah satu dari gaya ini yang boleh digunakan | |
SWT.CHECK | ||
SWT.PUSH | ||
SWT.RADIO | ||
SWT.TOGGLE | ||
SWT.FLAT | Menampilkan tombol dengan tampilan "rata", bukan seperti tombol biasa yang memiliki tampilan 3D seperti tombol tekan. (Hanya untuk beberapa platform tertentu saja) | |
SWT.LEFT | Hanya salah satu dari gaya ini yang boleh digunakan | |
SWT.RIGHT | ||
SWT.CENTER | ||
SWT.UP | Hanya boleh digunakan bersama dengan SWT.ARROW | |
SWT.DOWN | ||
SWT.LEFT | ||
SWT.RIGHT |
Metode | Penjelasan |
setText(String teks) | Mengeset teks pada tombol |
getText() | Mengembalikan String yang merupakan teks pada tombol |
setImage(Image image) | Mengeset gambar pada tombol |
getImage() | Mengembalikan Image yang merupakan gambar pada tombol |
Button tombolTeks = new Button(shell, SWT.PUSH); tombolTeks.setText("Tombolku"); ImageData dataGambar = new ImageData("c:\\grafik.bmp"); Image gambar = new Image(display, dataGambar); Button tombolGambar = new Button(shell, SWT.PUSH); tombolGambar.setImage(gambar);
SWT.LEFT
, SWT.RIGHT
, atau SWT.CENTER
pada konstruktor. Atau kita juga bisa menggunakan metode instansi pada kelas tombol berikut :Metode | Penjelasan |
setAlignment(int rapatan) | Mengeset kerapatan suatu teks atau gambar, rapatan hanya bisa berisi SWT.LEFT , SWT.RIGHT , atau SWT.CENTER |
getAlignment() | Mengambil int yang merupakan rapatan suatu teks atau gambar pada tombol. |
Button tombolTeks = new Button(shell, SWT.PUSH); tombolTeks.setText("Tombolku"); tombolTeks.setAlignment(SWT.LEFT);
Tombol ini memiliki sifat tombol biasa, yaitu ketika di klik tombol akan tampil seperti ditekan, dan ketika dilepas maka tombol akan kembali seperti biasa. Tombol ini memiliki event berikut :
Kelas Event (event bertipe) | Interface/Kelas Listener (listener bertipe) | Metode (listener bertipe) | Jenis event (event tanpa tipe) | Penjelasan |
SelectionEvent | SelectionListener (dan SelectionAdapter) | widgetDefaultSelected(SelectionEvent) | SWT.DefaultSelection | Suatu aksi pemilihan dilakukan pada pilihan default (misalnya ketika tombol Enter ditekan) |
widgetSelected(SelectionEvent) | SWT.Selection | Suatu aksi pemilihan dilakukan dalam widget (misalnya memilih item pada drop down list |
Button tombolTeks = new Button(shell, SWT.PUSH); tombolTeks.setText("Tombolku"); tombolTeks.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { // Perintah-perintah lainnya } });
Tombol ini secara perilaku mirip dengan SWT.PUSH, akan tetapi perbedaannya tombol ini tidak bisa diisi teks atau gambar. Tombol ini akan menggambar tanda panah, yang arahnya tergantung dari bit gaya yang diberikan, bisa ke kiri, kanan, atas atau bawah.
Tombol SWT.TOGGLE
Berbeda dengan tombol SWT.PUSH, tombol ini ketika diklik akan berada dalam posisi tertekan terus walaupun mouse sudah dilepaskan. Untuk mengembalikannya, tombol ini harus diklik kembali. Karena tombol ini bisa memiliki dua keadaan, yaitu keadaan tertekan dan keadaan terlepas, ada dua metode yang kita bisa gunakan untuk mengeset keadaan tombol atau untuk mengambil keadaan tombol saat itu, yaitu
Metode | Penjelasan |
setSelection(boolean pilih) | Mengeset keadaan suatu tombol. Jika pilih bernilai true, maka tombol berada dalam keadaan tertekan.</td></tr><tr><td>getSelection()</td><td>Mengembalikan [code]boolean yang berisi keadaan suatu tombol apakah dalam keadaan tertekan atau terlepas |
Tombol SWT.CHECK tidak berbentuk seperti tombol, akan tetapi perilakunya mirip dengan SWT.TOGGLE. Secara tampilan, SWT.CHECK ditampilkan seperti tombol kotak tik, yang apabila diklik kotak tik akan tercontreng. Untuk menghilangkan contrengan, klik kembali kotak cek tersebut.
Karenanya, mirip seperti SWT.TOGGLE, tombol ini memiliki dua keadaan tetap, yaitu kondisi tercontreng dan tidak tercontreng. Untuk mengeset keadaan ini, gunakan metode yang sama dengan SWT.TOGGLE, yaitu
setSelection()
dan getSelection()
.Tombol SWT.RADIO
Tombol ini mirip seperti SWT.CHECK, di mana apabila kita mengklik tombol radio, maka tombol tersebut berada dalam keadaan terpilih. Perbedaannya, jika beberapa tombol SWT.RADIO berada dalam satu induk, maka hanya satu tombol radio saja yang bisa aktif. Artinya jika kita mengklik tombol radio kedua, maka tombol ini akan terpilih dan yang lainnya akan mati. Untuk mengesetnya, gunakan metode yang sama seperti pada SWT.CHECK dan SWT.TOGGLE.
Biasanya, hanya satu tombol radio pada suatu kotak dialog atau jendela tidak masuk akal. Karena hanya ada tombol radio yang bisa aktif, maka satu tombol radio ini akan selalu aktif, sehingga percuma untuk diletakkan dalam GUI. Jika ada dua tombol radio, perilakunya persis sama dengan satu tombol SWT.CHECK (jika satu aktif, maka yang lainnya pasti tidak aktif). Untuk itu tombol radio biasanya digunakan untuk meminta user memilih satu dari sekian banyak pilihan.
Berikut ini adalah contoh program yang bisa Anda unduh di sini. Program ini akan menggambar beberapa jenis tombol. Jika salah satu tombol ditekan, maka warna latar belakang jendela akan berubah-ubah. Warna-warna ini disimpan dalam palette warna dalam bentuk array. Jika warna terakhir sudah ditampilkan, kemudian tombol ditekan kembali, maka warna pertama akan ditampilkan kembali.
package com.lyracc.tombolwarna; import org.eclipse.swt.*; import org.eclipse.swt.graphics.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; import org.eclipse.swt.events.*; public class TombolWarna { // Variabel-variabel widget kita deklarasikan sebagai // variabel privat private Display display; private Shell shell; private Color[] warna; private int warnaSekarang = 0; final int JUMLAHWARNA = 10; // Konstruktor kelas ini, untuk menginisialisasi semua widget TombolWarna() { // Membuat display dan shell baru display = new Display(); shell = new Shell(display); shell.setLayout(new RowLayout()); // Ubah ukuran jendela menjadi 200 x 200 piksel shell.setSize(250, 200); // Inisialisasi tombol-tombol Button tombol = new Button(shell,SWT.PUSH); tombol.setText("Tombolku SWT.PUSH"); Button tombol1 = new Button(shell,SWT.ARROW | SWT.LEFT); Button tombol2 = new Button(shell,SWT.TOGGLE); tombol2.setText("Tombolku SWT.TOGGLE"); Button tombol3 = new Button(shell,SWT.CHECK); tombol3.setText("Tombolku SWT.CHECK"); Button tombol4 = new Button(shell,SWT.RADIO); tombol4.setText("Tombolku SWT.RADIO"); // Mengeset event ListenerTombolWarna listenerTombolWarna = new ListenerTombolWarna(); tombol.addSelectionListener(listenerTombolWarna); tombol1.addSelectionListener(listenerTombolWarna); tombol2.addSelectionListener(listenerTombolWarna); tombol3.addSelectionListener(listenerTombolWarna); tombol4.addSelectionListener(listenerTombolWarna); // Mengeset warna-warna warna = new Color[JUMLAHWARNA]; warna[0] = display.getSystemColor(SWT.COLOR_BLACK); warna[1] = display.getSystemColor(SWT.COLOR_BLUE); warna[2] = display.getSystemColor(SWT.COLOR_CYAN); warna[3] = display.getSystemColor(SWT.COLOR_GRAY); warna[4] = display.getSystemColor(SWT.COLOR_GREEN); warna[5] = display.getSystemColor(SWT.COLOR_MAGENTA); warna[6] = display.getSystemColor(SWT.COLOR_RED); warna[7] = display.getSystemColor(SWT.COLOR_WHITE); warna[8] = display.getSystemColor(SWT.COLOR_YELLOW); warna[9] = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND); } // Kelas listener ketika tombol ditekan class ListenerTombolWarna extends SelectionAdapter { public void widgetSelected(SelectionEvent e) { // Jika warna lebih sudah di akhir array // kembali ke warna 0 if (warnaSekarang == warna.length) warnaSekarang = 0; shell.setBackground(warna[warnaSekarang++]); } } // Perintah "standar" SWT, harus ada pada setiap aplikasi SWT public void run() { shell.open(); while (!shell.isDisposed()) if (!display.readAndDispatch()) display.sleep(); display.dispose(); } /** * @param args */ public static void main(String[] args) { // Instansiasi kelas ini, kemudian jalankan run TombolWarna tombolWarna = new TombolWarna(); tombolWarna.run(); } }
17 September 2019 pukul 21.37
mantab banget gan
alat cuci ultrasonic