ImageData
untuk melambangkan gambar dalam format yang tidak tergantung pada suatu perangkat, dan Image
yang merupakan representasi gambar pada suatu perangkat.
Suatu
kontrol memiliki beberapa metode untuk menampilkan gambar di latar
depan ataupun latar belakangnya. Tentunya, ini tergantung dari kontrol
tersebut bagaimana hal ini akan diimplementasikan. Pada Label
misalnya, latar belakang bisa diset berbentuk gambar menggantikan warna
latar belakangnya. Atau bisa juga label diisi dengan gambar sebagai
pengganti teksnya.
Berikut ini adalah beberapa metode untuk mengeset suatu gambar pada kontrolSeperti warna dan huruf suatu kontrol yang memiliki pasangan
Color
dan RGB
atau Font
dan FontData
, gambar juga memiliki pasangan Image
dan ImageData
. ImageData
bisa juga dipergunakan untuk melakukan pengolahan gambar sederhana,
misalnya mengganti kontras melakukan clipping, dan sebagainya, akan
tetapi kita tidak akan membahas terlalu detail tentang gambar pada
bagian ini. Kita akan bahas lebih lanjut bagaimana untuk mengeset gambar
latar depan dan latar belakang suatu kontrol.Kelas Image
Kelas
Image
bisa diinstansiasi ke dalam bentuk objek dengan menggunakan beberapa
konstruktor. Salah satunya yang paling mudah digunakan adalah bentuk
konstruktor seperti Image(Device device, String namaFileGambar)
, di mana device
adalah perangkat yang akan digunakan untuk menampilkan gambar, bisa display atau printer, dan namaFileGambar
adalah path di mana file gambar yang akan kita tampilkan berada.Misalnya, pada perintah berikut
Image gambar = new Image(display, "contoh.png");
digunakan untuk mengimport gambar ke dalam objek bernama gambar
.
Objek ini bisa kita gunakan untuk mengeset gambar latar belakang atau
pengganti teks pada suatu kontrol. Akan tetapi ingat objek ini juga
harus dihapus dari sistem operasi dengan memanggil gambar.dispose()
secara eksplisit setelah tidak lagi digunakan.
Jika
ukuran suatu kontrol lebih besar dari pada gambar yang akan kita
tampilkan di latar belakangnya, maka gambar tersebut akan diulang-ulang
untuk memenuhi tampilan suatu kontrol. Kita bisa menggunakan metode
instansi getBounds()
dari suatu Image
untuk mendapatkan ukuran gambar yang diperlukan. Hasilnya bisa kita
gunakan untuk mengeset kontrol yang akan kita gunakan untuk menampilkan
gambar.
Contoh berikut menampilkan dua jenis label, di mana yang pertama menampilkan gambar sebagai warna latar belakangnya, dan yang satu menampilkan gambar sebagai pengganti teks. Program lengkapnya dapat diunduh di sini.
Kode Program :
package com.lyracc.gambarlabel;
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.graphics.*;
public class GambarLabel {
// Variabel-variabel widget kita deklarasikan sebagai
// variabel privat
private Display display;
private Shell shell;
private Label label1;
private Label label2;
// Konstruktor kelas ini, untuk menginisialisasi semua widget
GambarLabel() {
// 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, 50);
label1.setForeground(display.getSystemColor(SWT.COLOR_RED));
// Inisialisasi gambar
Image gambar = new Image(display,"contoh.png");
label1.setBackgroundImage(gambar); // Set gambar sebagai latar belakang
label2 = new Label(shell, SWT.CENTER | SWT.BORDER);
label2.setBounds(10, 70, 200, 50);
label2.setImage(gambar); // Set gambar
gambar.dispose(); // Jangan lupa menghapus gambar 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
GambarLabel jendela = new GambarLabel();
jendela.run();
}
}
Source : http://java.lyracc.com/belajar/java-untuk-pemula/menampilkan-gambar
Tidak ada komentar:
Posting Komentar