Navigasi buku
Metode pada Shell
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(); } }
| Sisipan | Ukuran |
|---|---|
| shellberbentuklingkaran.zip | 4.95 KB |


