Cari artikel di situs ini

Menampilkan gambar

Versi ramah cetakVersi ramah cetak

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();
    }
}
SisipanUkuran
gambarlabel.zip3.01 KB

Komentar

tugas java gambar manusia dalam bentuk poligon

saya ada tgs tntg java tentang membuat gambar manusia dalam bentuk poligon,,, tlong bantu sy bgmna utk membuat tampilannya . .

 

How to Import Image

Dear Admin...

Gimana caranya import/insert image ke project-nya?

sy sdh coba:

  • Klik Kanan Project, Import, General, File System
  • Next, Browse, Pilih Foleder tempat penyimpanan File, OK.
  • Pilih File contoh.png
  • Finish

Ketika di-Run:

Exception in thread "main" org.eclipse.swt.SWTException: Graphic is disposed at org.eclipse.swt.SWT.error(Unknown Source) at org.eclipse.swt.SWT.error(Unknown Source) at org.eclipse.swt.SWT.error(Unknown Source) at org.eclipse.swt.graphics.Image.getBounds(Unknown Source) at org.eclipse.swt.widgets.Label.wmDrawChild(Unknown Source) at org.eclipse.swt.widgets.Control.WM_DRAWITEM(Unknown Source) at org.eclipse.swt.widgets.Control.windowProc(Unknown Source) at org.eclipse.swt.widgets.Canvas.windowProc(Unknown Source) at org.eclipse.swt.widgets.Decorations.windowProc(Unknown Source) at org.eclipse.swt.widgets.Shell.windowProc(Unknown Source) at org.eclipse.swt.widgets.Display.windowProc(Unknown Source) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(Unknown Source) at org.eclipse.swt.widgets.Label.callWindowProc(Unknown Source) at org.eclipse.swt.widgets.Control.windowProc(Unknown Source) at org.eclipse.swt.widgets.Display.windowProc(Unknown Source) at org.eclipse.swt.internal.win32.OS.UpdateWindow(Native Method) at org.eclipse.swt.widgets.Decorations.setVisible(Unknown Source) at org.eclipse.swt.widgets.Shell.setVisible(Unknown Source) at org.eclipse.swt.widgets.Shell.open(Unknown Source) at gambarlabel.GambarLabel.run(GambarLabel.java:45) at gambarlabel.GambarLabel.main(GambarLabel.java:58)

 

Mohon bantuan dan bimbingannya, terimakasih.

Abi Zahra Shiddiq Kayyisah

algoritma

cara menghitung rata-rata dari nilai inputan di algoritma gmn gan,,,tlong di share ya gan..

Algoritma

Algoritma hitung_rata_rata:

Deklarasi:

integer a,b; real ratarata;

Deskripsi:

write("masukkan inputan pertama : "); read(a);

write("masukan inputan kedua : "); read(b);

ratarata = a+b;

write (ratarata);

 

Selanjutnya terserah anda 

selamat berexplore 

belajar

waducuh..... sumpah aku bingun sekali beajar java mungkin karna aku pertamanya kali aku mhon binbingan anda ea... karna aku inigin jadi hacker tapi masalah pemrograman aku tidak tau apa2, apa mungkin ea aku bisa jadi hacker????

 salam kenal dari

 salam kenal dari inda...

mungkin saja asalkan bayak blajar n jagan lapa berdoa,,,

program java forNext

saya ada tgs tntg java forNext,,, tlong bantu sy bgmna utk membuat tampilan di DOS sperti ini:

    AAAAA

  AAAAA

AAAAA

jd smua huruf A berbentuk jajaran genjang??

 

kemudian mengenai bilangan deret yg jmlh'a dilambangkan "n",,

dgn printah:

"Masukan bnyaknya deret= "

msal hsilnya: " 1, 2, 3"

tp ketiga angka trsebut lgsg di jmlahkan tnpa ada tanda jumlah, "1,2,3 = 6"

tlong bantuan'a,,

mencoba membantu

mencoba membantu.. pake C++ aja ya

for ( int i = 0 ; i < 3 ; i++ )

{

     for(int x = i ; x <= 2 ; x++)

      {

          cout<<"AAAA";

       }

       cout<<endl;

}

 

nomor 2 :

int deret;

int aray[99];

int i = 1;

int penampung=0;

cout<<"Masukkan banyak deret : ";

cin>>deret;

while(i <= deret)

{

    penampung= penampung + i;

    i++;

}

for(i=0;i<=deret;i++)

{

     cout<<aray[i]<<",";

}

cout<<"="<<penampung;

 

CMIIW

 

mencoba membantu

mencoba membantu.. pake C++ aja ya

for ( int i = 0 ; i < 3 ; i++ )

{

     for(int x = i ; x <= 2 ; x++)

      {

          cout<<"AAAA";

       }

       cout<<endl;

}

 

nomor 2 :

int deret;

int aray[99];

int i = 1;

int penampung=0;

cout<<"Masukkan banyak deret : ";

cin>>deret;

while(i <= deret)

{

    penampung= penampung + i;

    i++;

}

for(i=0;i<=deret;i++)

{

     cout<<aray[i]<<",";

}

cout<<"="<<penampung;

 

CMIIW

 

mencoba membantu

mencoba membantu.. pake C++ aja ya

for ( int i = 0 ; i < 3 ; i++ )

{

     for(int x = i ; x <= 2 ; x++)

      {

          cout<<"AAAA";

       }

       cout<<endl;

}

 

nomor 2 :

int deret;

int aray[99];

int i = 1;

int penampung=0;

cout<<"Masukkan banyak deret : ";

cin>>deret;

while(i <= deret)

{

    penampung= penampung + i;

    i++;

}

for(i=0;i<=deret;i++)

{

     cout<<aray[i]<<",";

}

cout<<"="<<penampung;

 

CMIIW