Cari artikel di situs ini

Button (Tombol)

Versi ramah cetakVersi ramah cetak

Kelas Button melambangkan suatu tombol yang jika ditekan atau dilepaskan akan melepaskan event tertentu.

Kelas Button memiliki beberapa bit gaya :

Bit gayaTampilan (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.UPHanya boleh digunakan bersama dengan SWT.ARROW
SWT.DOWN
SWT.LEFT
SWT.RIGHT

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.

MetodePenjelasan
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

Berikut ini adalah contoh mengeset teks dan gambar pada suatu 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);

Kita juga bisa mengatur kerapatan (alignment) suatu teks atau gambar. Selain menggunakan bit gaya SWT.LEFT, SWT.RIGHT, atau SWT.CENTER pada konstruktor. Atau kita juga bisa menggunakan metode instansi pada kelas tombol berikut :

MetodePenjelasan
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.

Misalnya,

Button tombolTeks = new Button(shell, SWT.PUSH);
tombolTeks.setText("Tombolku");
tombolTeks.setAlignment(SWT.LEFT);

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 :

Kelas Event (event bertipe)Interface/Kelas Listener (listener bertipe)Metode (listener bertipe)Jenis event (event tanpa tipe)Penjelasan
SelectionEventSelectionListener (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

Misalnya untuk menambahkan listener untuk event yang terjadi ketika tombol ditekan, kita bisa menggunakan SWT.Selection, misalnya pada contoh berikut :

        Button tombolTeks = new Button(shell, SWT.PUSH);
        tombolTeks.setText("Tombolku");
        tombolTeks.addSelectionListener(new SelectionAdapter() {
        	public void widgetSelected(SelectionEvent e) {
        		// Perintah-perintah lainnya
        	}
        });

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

MetodePenjelasan
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

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();
	}
}
SisipanUkuran
tombolwarna.zip1.88 KB