Control
memiliki metode untuk mengeset latar belakang dan latar depan suatu kontrol. Pada Label
, latar belakang Label
adalah ruangan di sekitar garis tepi atau wilayah yang ditentukan dengan metode setBounds()
, sedangkan latar depan Label
adalah warna teksnya.Karena kelas
Control
adalah kelas super dari kontrol-kontrol lain, bukan hanya Label
, tetapi juga Button
, Text
dan Shell
misalnya, maka metode-metode ini juga bisa digunakan oleh kontrol-kontrol lain yang merupakan kelas turunan dari Control
. Latar belakang dan latar depan tiap-tiap kontrol berbeda-beda tergantung dari kontrolnya.Berikut ini adalah beberapa metode pada kelas
Control
untuk mengatur warna.Metode | Penjelasan |
setForeground(Color warna) | Mengeset warna latar depan suatu kontrol |
setBackground(Color warna) | Mengeset warna latar belakang suatu kontrol |
getForeground() | Mengambil warna latar depan suatu kontrol. Tipe keluarannya bertipe Color |
getBackground() | Mengambil warna latar belakang suatu kontrol. Tipe keluarannya bertipe Color |
Color
. Kelas Color
terdapat pada paket org.eclipse.swt.graphics
Kelas Color
Instansi kelas
Color
digunakan untuk melambangkan warna yang sebenarnya yang telah diberikan oleh sistem operasi.Kelas ini bisa dibuat dengan dua cara : mengambil instansi warna dari sistem, dan membuat objek sendiri dari paduan warna merah, hijau dan biru (RGB). Khusus untuk cara yang kedua, programmer bertanggung jawab untuk menghapus objek ini dari memori sistem dengan menggunakan
dispose()
setelah kita selesai menggunakannya.Mengambil warna sistem
Cara termudah untuk mengisi kelas
Color
untuk digunakan dalam mengeset latar belakang dan latar depan suatu
kontrol adalah dengan mengambil warna sistem. Warna sistem terdiri dari
dua jenis, yaitu warna deskriptif dan warna sistem.Warna deskriptif adalah warna seperti yang kita kenal, seperti merah, hijau, biru. Akan tetapi setiap platform memiliki daftar warna tersendiri. Oleh karena itu, SWT menyimpan warna-warna ini dalam konstanta pada kelas SWT, misalnya SWT.COLOR_RED. Warna ini kita ubah menjadi objek bertipe
Color
dengan menggunakan perintah getSystemColor(int konstantaWarna)
yang terdapat pada objek berkelas Display
, misalnyaColor warna = display.getSystemColor(SWT.COLOR_RED);
Warna |
SWT.COLOR_WHITE |
SWT.COLOR_BLACK |
SWT.COLOR_RED |
SWT.COLOR_DARK_RED |
SWT.COLOR_GREEN |
SWT.COLOR_DARK_GREEN |
SWT.COLOR_YELLOW |
SWT.COLOR_DARK_YELLOW |
SWT.COLOR_BLUE |
SWT.COLOR_DARK_BLUE |
SWT.COLOR_MAGENTA |
SWT.COLOR_DARK_MAGENTA |
SWT.COLOR_CYAN |
SWT.COLOR_DARK_CYAN |
SWT.COLOR_GRAY |
SWT.COLOR_DARK_GRAY |
Perlu diingat bahwa tidak semua sistem operasi memiliki kesemua warna ini. Untuk mengetahui warna aktual suatu widget kita bisa menggunakan perintah
getBackground()
dan getForeground
seperti disebutkan di awal bagian ini.Warna sistem yang disediakan oleh SWT adalah sebagai berikut
Warna | Penjelasan |
SWT.COLOR_WIDGET_DARK_SHADOW | Warna bayangan gelap suatu widget |
SWT.COLOR_WIDGET_NORMAL_SHADOW | Warna bayangan normal suatu widget |
SWT.COLOR_WIDGET_LIGHT_SHADOW | Warna bayangan terang suatu widget |
SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW | Warna bayangan highlight suatu widget |
SWT.COLOR_WIDGET_FOREGROUND | Warna latar depan widget |
SWT.COLOR_WIDGET_BACKGROUND | Warna latar belakang widget |
SWT.COLOR_WIDGET_BORDER | Warna tepi |
SWT.COLOR_LIST_FOREGROUND | Warna latar depan suatu list |
SWT.COLOR_LIST_BACKGROUND | Warna latar belakang suatu list |
SWT.COLOR_LIST_SELECTION | Warna latar belakang item yang dipilih |
SWT.COLOR_LIST_SELECTION_TEXT | Warna teks item yang dipilih |
SWT.COLOR_INFO_FOREGROUND | Warna latar depan tool tip |
SWT.COLOR_INFO_BACKGROUND | Warna latar belakang tool tip |
SWT.COLOR_TITLE_FOREGROUND | Warna latar depan judul jendela |
SWT.COLOR_TITLE_BACKGROUND | Warna latar belakang judul jendela |
SWT.COLOR_TITLE_BACKGROUND_GRADIENT | Warna gradasi latar belakang judul jendela (hanya pada Windows lama, seperti Windows 2000) |
SWT.COLOR_TITLE_INACTIVE_FOREGROUND | Warna latar depan judul jendela yang tidak aktif |
SWT.COLOR_TITLE_INACTIVE_BACKGROUND | Warna latar belakang judul jendela yang tidak aktif |
SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT | Warna gradasi latar belakang judul jendela yang tidak aktif (hanya pada Windows lama, seperti Windows 2000) |
Kelas ini merupakan representasi dari warna merah, hijau dan biru (red, green, blue = RGB), yang merupakan komposisi suatu warna di layar. Kelas
RGB
berbeda dengan kelas Color
di mana RGB
hanya berisi representasi dari warna tersebut, bukan merupakan warna
yang sesungguhnya yang bisa diolah atau diberikan kepada suatu kontrol.Instasiasi dari kelas RGB bisa dibuat dengan menggunakan konstruktor dengan bentuk
RGB(int merah, int hijau, int biru)
.Karena tidak menggunakan memori dari sistem operasi, maka seringkali instansi kelas ini digunakan dalam transaksi data dengan widget lain, misalnya pada
ColorDialog
, warna yang dipilih oleh user akan disimpan dalam bentuk RGB
.Seperti disebutkan sebelumnya, instansi kelas ini tidak bisa digunakan langsung untuk mengeset latar belakang atau latar depan suatu kontrol. Untuk bisa digunakan, kita harus meminta alokasi dari sistem operasi, yaitu dalam bentuk objek bertipe
Color
. Caranya yaitu dengan menggunakan salah satu konstruktor kelas Color
yang berbentuk sepertiColor(Device perangkat, RGB rgb)
perangkat
bisa berupa display atau printer. Setelah kita berhasil meminta warna
dari sistem operasi, kita bisa mengecek apakah warna yang dihasilkan
sesuai dengan yang kita berikan dengan menggunakan metode pada kelas Color
, yaitugetRed()
untuk mendapatkan warna merahgetGreen
untuk mendapatkan warna hijaugetBlue()
untuk mendapatkan warna birugetRGB()
untuk mendapatkan objek bertipeRGB
yang merupakan gabungan merah, hijau dan biru.
Mari kita lihat contoh berikut, di mana label akan kita berikan warna latar depan dan warna latar belakang yang berbeda dari defaultnya. Program lengkapnya bisa Anda unduh di sini.
package com.lyracc.warnalabel; import org.eclipse.swt.*; import org.eclipse.swt.widgets.*; import org.eclipse.swt.graphics.*; public class WarnaLabel { // Variabel-variabel widget kita deklarasikan sebagai // variabel privat private Display display; private Shell shell; private Label label1; private Label label2; private Color warna1; private Color warna2; // Konstruktor kelas ini, untuk menginisialisasi semua widget WarnaLabel() { // Membuat display dan shell baru display = new Display(); shell = new Shell(display); shell.setSize(250, 200); shell.setText("Hello SWT"); // Inisialisasi label label1 = new Label(shell, SWT.CENTER | SWT.BORDER); label1.setText("Hello dari SWT"); label1.setBounds(10, 10, 200, 25); // Set warna, cara pertama dengan mengambil warna dari sistem label1.setBackground(display.getSystemColor(SWT.COLOR_BLUE)); label1.setForeground(display.getSystemColor(SWT.COLOR_YELLOW)); label2 = new Label(shell, SWT.CENTER | SWT.BORDER); label2.setText("Hallo dari SWT"); label2.setBounds(10, 40, 200, 25); // Set warna, cara kedua dengan membuat objek Color dan RGB warna1 = new Color(display, new RGB(255,255,0)); // menggunakan objek RGB warna2 = new Color(display, 0, 0, 255); // konstruktor Color jenis lain label2.setBackground(warna1); label2.setForeground(warna2); warna1.dispose(); // objek ini harus dihapus manual dari memori warna2.dispose(); // objek ini harus dihapus manual dari memori } // 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 WarnaLabel jendela = new WarnaLabel(); jendela.run(); } }
Sumber : http://java.lyracc.com/belajar/java-untuk-pemula/mengeset-warna
Tidak ada komentar:
Posting Komentar