GridBagLayout bileşenleri dikey,yatay veya onların taban çizgileri boyunca hizalanmasında kullanılır.Bileşenler her zaman aynı ebatta olamaz bu yüzden herbir GridBagLayout nesnesi dikdörtgen ızgaralara esneklik sağlar.Her bileşen GridBagConstraints örneği ile ilişkilendirilir.GridBagConstraints,bileşenlerin GridBagLayout üzerinde nasıl yerleştirileceğini tanımlar.
Birkaç GridBagConstraints alanı(Fields) hakkında bilgi verelim.
anchor : Tam doldurmayan bir alandaki bileşenin göreli konumunun (Kuzey,KuzeyDoğu,Doğu,GüneyDoğu,Güney,GüneyBatı,Batı,KuzeyBatı,Merkez) şeklinde belirlenmesi.
fill : Görüntü alanının bileşenden daha büyük olduğu zaman,bileşenin belli bir yönde(Yatay,Dikey,Hem Yatay hem Dikey) olarak yeniden boyutlandırılmasını sağlar.
gridx : Bileşenin yerleştirileceği sütunu belirtir.
gridy : Bileşenin yerleştirileceği satırı belirtir.
gridwidth : Bileşenin kapladığı sütun sayısını belirtir.
gridheight : Bileşenin kapladığı satır sayısını belirtir.
weightx : Yatay olarak tahsis ettiği ekstra boşluk miktarı.
weighty : Düşey olarak tahsis ettiği ekstra boşluk miktarı.
Bir örnekle açıklayacak olursak şöyle;
[cc lang=”java”]
package gridbaglayouttest;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
class GridBagLayoutFrame extends JFrame{
public GridBagLayoutFrame(){
super(“GridBagLayout Kullanımı”);
GridBagLayout layout = new GridBagLayout();
GridBagConstraints gc = new GridBagConstraints();
setLayout(layout);
JTextArea textAlanı1 = new JTextArea(“TextAlanı1”,5,10);
gc.fill=GridBagConstraints.BOTH;
gc.gridx=0;
gc.gridy=0;
gc.gridwidth=1;
gc.gridheight=3;
add(textAlanı1,gc);
JTextField metinAlanı = new JTextField(“TextField”);
gc.fill=GridBagConstraints.BOTH;
gc.gridx=0;
gc.gridy=3;
gc.gridwidth=2;
gc.gridheight=1;
add(metinAlanı,gc);
JButton buton1 = new JButton(“Buton-1”);
gc.fill=GridBagConstraints.HORIZONTAL;
gc.gridx=1;
gc.gridy=0;
gc.gridwidth=2;
gc.gridheight=1;
add(buton1,gc);
JButton buton2 = new JButton(“Buton-2”);
gc.fill=GridBagConstraints.BOTH;
gc.weightx=1000;
gc.weighty=1;
gc.gridx=1;
gc.gridy=1;
gc.gridwidth=1;
gc.gridheight=1;
add(buton2,gc);
String[] metalIsim = {“Demir”,”Gümüş”,”Pirinç”};
JComboBox
gc.fill=GridBagConstraints.HORIZONTAL;
gc.weightx=0;
gc.weighty=0;
gc.gridx=1;
gc.gridy=2;
gc.gridwidth=2;
gc.gridheight=1;
add(comboBox,gc);
JButton buton3 = new JButton(“Buton-3”);
gc.fill=GridBagConstraints.BOTH;
gc.gridx=2;
gc.gridy=1;
gc.gridwidth=1;
gc.gridheight=1;
add(buton3,gc);
JTextArea textAlanı2 = new JTextArea(“TextAlanı2”,2,2);
gc.fill=GridBagConstraints.BOTH;
gc.gridx=2;
gc.gridy=3;
gc.gridwidth=1;
gc.gridheight=1;
add(textAlanı2,gc);
}
}
public class GridBagLayoutTest {
public static void main(String[] args) {
GridBagLayoutFrame yzrFrame = new GridBagLayoutFrame();
yzrFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
yzrFrame.setSize(450, 500);
yzrFrame.setVisible(true);
}
}
[/cc]
Çıktı;
Evet arkadaşlar bu örneğimizde ilk olarak JFrame ile genişletilmiş GridBagLayoutFrame adında bir sınıf oluşturduk.Kurucu metotta GridBagLayout nesnesi oluşturduk ve onu kapsayıcımızın düzen yöneticisi olarak ayarladık.Bileşenleri düzenlememizde bize yardımcı olacak GridBagConstraints sınıfından da “gc” adında bir nesne oluşturduk.
Bileşenlerimizi tek tek oluşturup GridBagConstraints sağladığı alanlar(Field) ile onları ızgarada konumlandırdık.
Son olarak add(Component bileşen,Object kısıtlama(constraints)) metodu ile bileşenleri kapsayıcımıza ekledik.
İlk yorum yapan olun