Minggu, 02 Maret 2014

Menampilkan Gambar

Seperti halnya warna dan huruf pada SWT, ada dua kelas yang digunakan untuk menampilkan gambar pada SWT : 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 kontrol.
MetodePenjelasan
setBackgroundImage(Image gambar)Mengeset latar belakang kontrol dengan gambar sebagai pengganti warna latar belakang
setImage(Image gambar)Mengeset gambar sebagai pengganti teks pada kontrol
getBackgroundImage()Mengembalikan Image yang merupakan gambar latar belakang suatu kontrol
getImage()Mengembalikan Image yang merupakan gambar pada kontrol
Seperti 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.

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();
    }
}
 
Sumber : http://java.lyracc.com/belajar/java-untuk-pemula/menampilkan-gambar 

Tidak ada komentar:

Posting Komentar