Kelompok M
A. Kelas GridBagLayout


11.11.4638 YOGI HARIES PRAMONO
11.11.4684 YOSE ABDURRAHMAN BRILIANTO
11.11.4660 YULIUS AGATO
11.11.4648 HUSAIN ASEPSA CHOLIS
11.11.4670 SEPTI BARKAH ISTIANT
A. Kelas GridBagLayout
java.lang.Object
java.awt.GridBagLayout
Semua
Diimplementasikan Interfaces:
LayoutManager,
LayoutManager2, Serializable
public class
GridBagLayout
meluas Obyek
Mengimplementasikan
LayoutManager2, Serializable
Kelas GridBagLayout
adalah manajer layout yang fleksibel yang sejalan komponen vertikal, horizontal
atau di sepanjang dasar mereka tanpa memerlukan bahwa komponen menjadi ukuran
yang sama. Setiap objek GridBagLayout mempertahankan grid, dinamis sel persegi,
dengan masing-masing komponen menempati satu atau lebih sel, yang disebut area
tampilan nya.
Setiap komponen
dikelola oleh GridBagLayout dikaitkan dengan sebuah contoh dari
GridBagConstraints. Obyek kendala menentukan mana area tampilan komponen yang
harus berada di grid dan bagaimana komponen harus diposisikan dalam area
tampilan nya. Selain objek kendala, GridBagLayout juga menganggap minimum
setiap komponen dan ukuran pilihan untuk menentukan ukuran komponen.
Orientasi keseluruhan
grid tergantung pada properti ComponentOrientation wadah itu. Untuk horisontal
kiri-ke-kanan orientasi, grid koordinat (0,0) adalah di sudut kiri atas wadah
dengan x meningkat ke kanan dan y meningkat ke bawah. Untuk horisontal
kanan-ke-kiri orientasi, grid koordinat (0,0) adalah di sudut kanan atas dari
wadah dengan x meningkat dengan meningkatnya kiri dan y ke bawah.
Untuk menggunakan tata
letak tas kotak efektif, Anda harus menyesuaikan satu atau lebih obyek
GridBagConstraints yang berkaitan dengan komponen-komponennya. Anda
menyesuaikan objek GridBagConstraints dengan menetapkan satu atau lebih dari
variabel instance nya:
GridBagConstraints.gridx,
GridBagConstraints.gridy
Menentukan sel yang
berisi sudut terkemuka area tampilan komponen, di mana sel pada asal grid
memiliki alamat gridx = 0, gridy = 0. Untuk horisontal kiri-ke-kanan tata
letak, sudut terkemuka komponen adalah kiri atas nya. Untuk horisontal
kanan-ke-kiri tata letak, sudut terkemuka komponen yang tepat atasnya. Gunakan
GridBagConstraints.RELATIVE (nilai default) untuk menentukan bahwa komponen
ditempatkan tepat berikut (sepanjang sumbu x untuk gridx atau sumbu y untuk
gridy) komponen yang ditambahkan ke wadah sebelum komponen ini ditambahkan.
GridBagConstraints.gridwidth,
GridBagConstraints.gridheight
Menentukan jumlah sel
berturut-turut (untuk gridwidth) atau kolom (untuk gridheight) di daerah layar
komponen. Nilai default adalah 1. Gunakan GridBagConstraints.REMAINDER untuk
menentukan bahwa area tampilan komponen akan berasal dari gridx ke sel terakhir
dalam baris (untuk gridwidth) atau dari gridy ke sel terakhir dalam kolom
(untuk gridheight). Gunakan GridBagConstraints.RELATIVE untuk menentukan bahwa
area tampilan komponen akan berasal dari gridx ke sebelah sel terakhir dalam
baris (untuk gridwidth atau dari gridy ke sebelah sel terakhir dalam kolom nya
(untuk gridheight).
GridBagConstraints.fill
Digunakan saat area
tampilan komponen ini lebih besar dari ukuran komponen diminta untuk menentukan
apakah (dan bagaimana) untuk mengubah ukuran komponen. Nilai yang mungkin
adalah GridBagConstraints.NONE (default), GridBagConstraints.HORIZONTAL
(membuat komponen cukup lebar untuk mengisi area tampilan yang horizontal,
tetapi tidak mengubah tingginya), GridBagConstraints.VERTICAL (membuat komponen
yang cukup tinggi untuk mengisi area tampilan yang vertikal, tetapi tidak
mengubah lebar), dan GridBagConstraints.BOTH (membuat komponen mengisi area
tampilan yang seluruhnya).
GridBagConstraints.ipadx,
GridBagConstraints.ipady
Menentukan padding
internal komponen ini dalam tata letak, berapa banyak untuk menambah ukuran
minimum komponen. Lebar komponen akan setidaknya lebar minimum yang ditambah
piksel ipadx. Demikian pula, ketinggian komponen akan setidaknya ketinggian
minimum ditambah piksel ipady.
GridBagConstraints.insets
Menentukan bantalan
eksternal komponen ini, jumlah minimum ruang antara komponen dan tepi area
tampilan nya.
GridBagConstraints.anchor
Menentukan di mana
komponen harus diposisikan di area tampilan nya. Ada tiga macam nilai yang
mungkin: absolut, orientasi-relatif, dan nilai-nilai dasar-Orientasi relatif
relatif diinterpretasikan relatif terhadap properti ComponentOrientation wadah
sementara nilai absolut tidak. Baseline nilai relatif dihitung relatif terhadap
baseline. Nilai yang benar adalah:
Digunakan untuk
menentukan bagaimana mendistribusikan ruang, yang penting untuk menentukan
perilaku mengubah ukuran. Kecuali Anda tentukan berat untuk setidaknya satu
komponen berturut-turut (weightx) dan kolom (berat), semua komponen
bersama-sama rumpun di tengah wadah mereka. Hal ini karena ketika berat badan
adalah nol (default), obyek GridBagLayout menempatkan setiap ruang ekstra
antara grid selnya dan tepi wadah.
Setiap baris mungkin
memiliki data dasar, baseline ditentukan oleh komponen dalam baris yang yang
memiliki dasar yang valid dan selaras di sepanjang baseline (nilai jangkar
komponen adalah salah satu BASELINE, BASELINE_LEADING atau BASELINE_TRAILING).
Jika tidak ada komponen berturut-turut memiliki dasar yang sah, baris tidak
memiliki data dasar.
Jika komponen meliputi baris
itu selaras baik dengan dasar dari baris awal (jika perilaku dasar-resize
CONSTANT_ASCENT) atau baris akhir (jika perilaku dasar-resize
CONSTANT_DESCENT). Baris bahwa komponen sejalan dengan disebut baris yang
berlaku.
Gambar berikut
menunjukkan tata letak dasar dan termasuk komponen yang mencakup baris:

Tata letak ini terdiri
dari tiga komponen:
Sebuah panel yang
dimulai pada baris 0 dan berakhir di baris 1. Panel ini memiliki perilaku
dasar-resize dari CONSTANT_DESCENT dan memiliki jangkar BASELINE. Sebagai
perilaku dasar-resize CONSTANT_DESCENT baris berlaku untuk panel adalah baris
1.
Dua tombol,
masing-masing dengan perilaku dasar-resize dari CENTER_OFFSET dan jangkar
BASELINE.
Karena tombol kedua dan
panel berbagi baris yang sama berlaku, mereka berdua selaras di sepanjang dasar
mereka.
Komponen diposisikan
menggunakan salah satu dasar-nilai relatif ukuran berbeda daripada ketika
diposisikan menggunakan nilai absolut atau orientasi-relatif. Bagaimana
komponen perubahan ditentukan oleh bagaimana dasar dari perubahan baris yang
berlaku. Baseline adalah berlabuh ke bagian bawah area layar jika ada komponen
dengan baris berlaku sama memiliki perilaku dasar-resize dari CONSTANT_DESCENT,
jika baseline adalah berlabuh ke bagian atas area layar. Aturan berikut
mendikte perilaku resize:
Komponen resizable
diposisikan diatas garis dasar hanya bisa tumbuh setinggi baseline. Misalnya,
jika baseline berada pada 100 dan berlabuh di atas, komponen resizable
diposisikan di atas dasar tidak pernah bisa tumbuh lebih dari 100 unit.
Demikian pula, komponen
resizable diposisikan di bawah baseline hanya dapat tumbuh setinggi perbedaan
antara tinggi layar dan baseline.
Komponen resizable
diposisikan pada baseline dengan perilaku dasar-resize of LAIN hanya diubah ukurannya
jika baseline pada ukuran ukurannya pas dengan area tampilan. Jika baseline
adalah sedemikian rupa sehingga tidak sesuai dalam bidang tampilan komponen
tersebut tidak diubah ukurannya.
Komponen diposisikan
pada dasar yang tidak memiliki perilaku dasar-resize of LAIN hanya bisa tumbuh
setinggi tinggi layar - dasar + dasar komponen.
Jika Anda posisi
komponen di sepanjang baseline, tetapi komponen tersebut tidak memiliki dasar
yang sah, maka akan vertikal terpusat dalam ruang tersebut. Demikian pula jika
Anda telah memposisikan komponen relatif terhadap baseline dan tidak ada
komponen dalam baris memiliki dasar yang sah komponen secara vertikal terpusat.
Gambar berikut ini
menunjukkan sepuluh komponen (semua tombol) dikelola oleh tata letak tas grid.
Gambar 2 menunjukkan tata letak untuk kontainer, horisontal kiri-ke-kanan dan
Gambar 3 menunjukkan tata letak untuk kontainer, horisontal kanan-ke-kiri.


Masing-masing dari
sepuluh komponen memiliki bidang mengisi GridBagConstraints yang terkait mengajukan
keberatan diatur ke GridBagConstraints.BOTH. Selain itu, komponen memiliki
non-default kendala berikut:
Button1, tombol2,
Tombol3: weightx = 1.0
Button4: weightx = 1.0,
gridwidth = GridBagConstraints.REMAINDER
Button5: gridwidth =
GridBagConstraints.REMAINDER
Button6: gridwidth =
GridBagConstraints.RELATIVE
Button7: gridwidth =
GridBagConstraints.REMAINDER
Button8: gridheight =
2, berat = 1,0
Button9, Tombol 10:
gridwidth = GridBagConstraints.REMAINDER
Berikut adalah kode
yang mengimplementasikan contoh di atas:
import java.awt.*;
import java.util.*;
import java.applet.Applet;
public class GridBagEx1 extends Applet {
protected void makebutton(String name,
GridBagLayout gridbag,
GridBagConstraints c) {
Button button = new Button(name);
gridbag.setConstraints(button, c);
add(button);
}
public void init() {
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setFont(new Font("SansSerif", Font.PLAIN, 14));
setLayout(gridbag);
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
makebutton("Button1", gridbag, c);
makebutton("Button2", gridbag, c);
makebutton("Button3", gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER; //end row
makebutton("Button4", gridbag, c);
c.weightx = 0.0; //reset to the default
makebutton("Button5", gridbag, c); //another row
c.gridwidth = GridBagConstraints.RELATIVE; //next-to-last in row
makebutton("Button6", gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER; //end row
makebutton("Button7", gridbag, c);
c.gridwidth = 1; //reset to the default
c.gridheight = 2;
c.weighty = 1.0;
makebutton("Button8", gridbag, c);
c.weighty = 0.0; //reset to the default
c.gridwidth = GridBagConstraints.REMAINDER; //end row
c.gridheight = 1; //reset to the default
makebutton("Button9", gridbag, c);
makebutton("Button10", gridbag, c);
setSize(300, 100);
}
public static void main(String args[]) {
Frame f = new Frame("GridBag Layout Example");
GridBagEx1 ex1 = new GridBagEx1();
ex1.init();
f.add("Center", ex1);
f.pack();
f.setSize(f.getPreferredSize());
f.show();
}
}
Referensi:
Comments
Post a Comment