Cari artikel di situs ini

Metode pada Shell

Versi ramah cetakVersi ramah cetak

Mengeset judul jendela dan icon jendela

Metode Penjelasan
setText(String judul) Mengeset judul jendela. Tidak bisa mengandung mnemonik.
getText() Mengambil judul jendela. Jika tidak pernah diset, maka hasilnya adalah string kosong
setImage(Image gambar) Mengeset gambar icon pada jendela, atau gambar icon yang akan digunakan ketika jendela diminimasi
getImage() Mengambil gambar icon jendela
setImages(Image[] gambar) Mengeset beberapa gambar icon pada jendela. Pada kebanyakan manager jendela, hanya gambar terakhir saja yang ditampilkan
getImages() MEngambil gambar-gambar yang sudah diset pada jendela

Membuka dan menutup jendela

Metode Penjelasan
open() Membuka jendela dan mengarahkan fokus pada jendela ini.
setActive() Membuat suatu jendela menjadi jendela aktif. Mirip dengan open() akan tetapi fokus tidak otomatis di set ke jendela aktif
forceActive() Memaksa agar suatu jendela menjadi jendela aktif, akan tetapi tidak selamanya akan berhasil.
close() Menutup jendela, sama seperti ketika user menutup jendela dengan menekan tombol (X) di sudut kanan atas jendela.
isEnabled() Mengembalikan true jika jendela ini bisa menerima fokus, dan semua induknya hingga level tertinggi juga enabled.
getEnabled() Mengembalikan true jika jendela ini bisa menerima fokus
setEnabled(boolean enabled) Mengeset apakah suatu jendela bisa menerima fokus
isVisible() Mengembalikan true jika jendela bisa dilihat
getVisible() Mengembalikan true jika jendela bisa dilihat
setVisible(boolean visible) Mengeset apakah suatu jendela bisa dilhat atau tidak.

Mengubah ukuran suatu jendela

Metode Penjelasan
getBounds() Mengembalikan Rectangle yang merupakan koordinat sudut-sudut suatu jendela relatif terhadap induknya
setRegion(Region wilayah) Mengeset bentuk suatu jendela, misalnya kita ingin jendela kita berbentuk bentuk lain selain persegi panjang.
getRegion() Mengembalikan Region yang merupakan bentuk suatu jendela (bisa jadi bukan berupa persegi panjang, tapi bentuk lain yang kita definisikan sebelumnya). Mengembalikan null jika bentuk jendela seperti biasa (persegi panjang)
getSize() Mengembalikan Point yang merupakan ukuran suatu jendela, x adalah lebar dan y adalah tingginya
setSize(int lebar, int tinggi) Mengeset ukuran suatu jendela
setSize(Point p) Mengeset ukuran suatu jendela, dengan parameter dalam bentuk Point
getMinimumSize() Mengembalikan Point ukuran minimum suatu jendela. Ukuran minimum adalah ukuran di mana user tidak bisa memperkecil ukuran jendela lagi lebih kecil dari ukuran ini.
setMinimumSize(int lebar, int tinggi) Mengeset ukuran minimum suatu jendela. User tidak bisa memperkecil jendela lebih kecil dari ukuran ini.
setMinimumSize(Point p) Mengeset ukuran minimum suatu jendela. Menerima argumen bertipe Point
getLocation() Mengambil lokasi suatu jendela relatif terhadap induknya
setLocation(int x, int y) Mengeset lokasi suatu jendela relatif terhadap induknya
getFullScreen() Mengembalikan true jika jendela dalam keadaan full screen
setFullScreen(boolean fullscreen) Mengeset keadaan full screen suatu jendela
getMaximized() Mengembalikan true jika jendela dalam keadaan dimaksimasi (masiximized)
setMaximized(boolean maximized) Mengeset keadaan maximized suatu jendela
getMinimized() Mengembalikan true jika jendela dalam keadaan diminimasi (minimized)
setMinimized(boolean minimized) Mengeset keadaan minimasi suatu jendela

Mengelola isi suatu jendela

Metode Penjelasan
setMenuBar(Menu menu) Mengeset menu suatu jendela
getMenuBar() Mengembalikan Menu suatu jendela
getShells() Mengembalikan array Shell[] yang merupakan shell-shell anak dari shell ini
getChildren() Mengembalikan array Control[] yang merupakan wkontrol-kontrol yang terdapat di dalam jendela ini.
getDefaultButton() Mengembalikan tombol apa yang akan dieksekusi jika tombol <Enter> ditekan (berguna untuk kotak dialog)
setDefaultButton(Button tombol) Mengeset tombol apa yang akan dieksekusi jika tombol <Enter> ditekan (biasanya pada kotak dialog)
getBackground()Mengembalikan Color yang merupakan latar belakang suatu jendela
setBackground(Color warna)Mengeset warna latar belakang suatu jendela
getForeground()Mengembalikan Color yang merupakan latar depan suatu jendela
setForeground(Color warna)Mengeset warna latar depan suatu jendela
getBackgroundImage()Mengembalikan Image yang merupakan gambar latar belakang suatu jendela
setBackgroundImage(Image gambar)Mengeset gambar latar belakang suatu jendela. Jika gambar lebih kecil dari ukuran jendela, gambar akan dibuat berulang-ulang.

Pada contoh berikut ini kita akan membuat shell berbentuk oval dengan latar belakang merah. Kita bisa memindahkan shell tersebut dengan menggesernya ke posisi lain (tekan mouse di dalam oval, kemudian gerakkan mouse). Karena tidak ada tombol (X) di sudut kanan atas jendela, kita tambahkan event yang akan menutup jendela ketika sembarang tombol keyboard ditekan.

Program lengkapnya dapat diunduh di sini dan dapat Anda import ke dalam Eclipse. Berikut program lengkapnya.

package com.lyracc.shellberbentuklingkaran;
 
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
 
public class ShellBerbentukLingkaran {
 
    // Jumlah titik pada lingkaran, semakin banyak semakin halus
    // Dari rumus geometri, untuk membuat suatu bangun datar
    // dibutuhkan minimum 3 titik.
    final static int JML_TITIK = 151;
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        Display display = new Display();
        // Membuat shell baru tanpa garis tepi
        Shell shell = new Shell(display, SWT.NO_TRIM);
 
        // Mengambil warna hitam dari sistem
        Color warnaMerah =
            display.getSystemColor(SWT.COLOR_RED);
 
        // Mengeset warna dan ukuran shell mula-mula
        shell.setBackground(warnaMerah);
        shell.setSize(100, 200);
 
        // Mengambil batas-batas shell
        Rectangle wilayah = shell.getClientArea();
 
        // Koordinat tengah jendela
        Point tengah = new Point(0, 0);
        tengah.x = wilayah.x + wilayah.width / 2;
        tengah.y = wilayah.y + wilayah.height / 2;
 
        int[] koordinat = new int[JML_TITIK * 2];
 
        // menggunakan rumus trigonometri untuk mendapatkan koordinat lingkaran
        for (int i = 0; i < JML_TITIK; ++i) {
            double r = Math.PI * 2 * i / JML_TITIK;
            koordinat[i*2] = (int)(tengah.x + Math.cos(r) * wilayah.width / 2);
            koordinat[i*2+1] = (int)(tengah.y + Math.sin(r) * wilayah.height / 2);
        }
 
        // Membuat region baru dan menambahkannya pada shell
        Region region = new Region(display);
        region.add(koordinat);
        shell.setRegion(region);
 
        Listener listener = new Listener() {
 
            int offsetX = 0;
            int offsetY = 0;
 
            public void handleEvent(Event e) {
                Shell shellUtama = (Shell)e.widget; 
 
                switch (e.type) {
                    // Jika mouse ditekan ambil koordinat saat itu
                    case SWT.MouseDown:
                        if (e.button == 1) {
                            offsetX = e.x;
                            offsetY = e.y;
                        }
                        break;
 
                    case SWT.MouseMove:
                        // Jika mouse pindah sambil ditekan dengan tombol kiri
                        if ((e.stateMask & SWT.BUTTON1) != 0) {
 
                            // Ambil lokasi mouse relatif terhadap display
                            Point pt = shellUtama.toDisplay(e.x, e.y);
 
                            // Translasikan dengan offset awal
                            pt.x -= offsetX;
                            pt.y -= offsetY;
 
                            // Set lokasi baru
                            shellUtama.setLocation(pt);
                        }
                        break;
 
                    case SWT.KeyDown :
                        // Jika tombol keyboard ditekan tutup jendela
                        shellUtama.dispose();
                        break;
                }
            }
        };
 
        // Tambah listener ke dalam shell
        shell.addListener(SWT.MouseDown, listener);
        shell.addListener(SWT.MouseMove, listener);
        shell.addListener(SWT.KeyDown, listener);
 
        shell.open();
        while (!shell.isDisposed())
            if (!display.readAndDispatch()) 
                display.sleep();
        // Jangan lupa untuk mendispose region juga
        region.dispose();
        display.dispose();        
    }
}

 

SisipanUkuran
shellberbentuklingkaran.zip4.95 KB