<$BlogRSDURL$>

Java ve Sayfa Düzeni II 

java.awt.GridBagLayout
Bir önceki yazıda temel döşeme sınıflarından bahsetmiştik. Bu döşeme yöntemleri basit olmakla beraber, görsel bileşenleri belli bir sıra ve boyutlarla döşemekteydiler. Sayfa üzerine yerleştirilecek olan bileşenleri hep aynı sıra ve boyutlarda yerleştirmek sanırım olası en kötü tasarımı ve aynı zamanda da en kullanışsız kullanıcı arayüzünü elde etmenizi sağlıyacaktır. Bu duruma çözüm olarak daha gelişmiş fakat kodlaması diğerlerinden biraz daha karmaşık döşeme yöntemleri geliştirilmiştir.

GridLayout'un daha gelişmiş biçmidir. Döşeme yöneticisine bileşeni verirken, bileşenin nasıl bir döşeme kuralıyla yerleştirileceğide söylenir. Böylece bir bileşen ızgara üzerinde bir den fazla hücre kullanarak yerleştirilebilir.

Bir bileşenin ızgara üzerinde nereye ve nasıl yerleşeceğinin bilgisi kısıt nesnesi ( GridBagLayoutConstraints ) ile bildirilir. Dolayısı ile her bileşen için onu ilgilendiren ayrı bir kısıt nesnesini de üretmelisiniz.

JPanel panel = new JPanel();
GridBagLayout gbl = new GridBagLayout();
panel.setLayout( gbl );

Jbutton button = new JButton();

GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 1;
gbc.gridy = 1;
gbl.setConstraints( button, gbc );
panel.add( button );

Burada esnekliği sağlayan kısıt nesnesinin aldığı parametrelerdir.



GridBagConstraints.gridx ve GridBagConstraints.gridy
Bileşenin ızgara üzerinde hangi hücreye yerleşeğini belirtir. Izgaranın sol üst köşesi için değerler : girdx = 0, gridy = 0 dır. Eğer bu değerlere GridBagConstraints.RELATIVE atarsanız, sıradaki bir sonraki hücreye geçecektir.

GridBagConstraints.gridwidth ve GridBagConstraints.gridheight
Bileşenin ızgara üzerinde ne kadar yer kaplayacağını belirtir. Verilecek olan tam sayı değerler kaç hücre kaplayacağını söyler. Eğer bu değerlere GridBagConstraints.REMAINDER atanırsa son bileşen olduğunu belirtir ve geriye kalan hücreleri kaplamasını sağlar ( Button9 ve Button10 ), GridBagConstraints.RELATIVE atanır ise son bileşeen kadar olan alanı kaplamasını sağlar ( Button6 ).

GridBagConstraints.fill
Bileşenin bahsi geçen hücreleri, döşeme kurallarını dikkate almak üzere nasıl dolduracağını belirtir. GridBagConstraints.NONE hücreleri doldurmamasını, GridBagConstraints.HORIZANTAL, GridBagConstraints.VERTICAL, belirtilen yönlerde tamamen doldurmasını, GridBagConstraints.BOTH tüm hücre alanlarını doldurmasını sağlar.

GridBagConstraints.ipadx ve GridBagConstraints.ipady
Bileşenin hücre içinde alacağı alacağı minimum büyüklüğe eklenecek olan tampon büyüklüğü belirtir.

GridBagConstraints.insets
Bileşenin hücrenin sınırlarıyle arasında kalacak olan tampon büyüklüğü belirtir.

GridBagConstraints.anchor
Eğer bileşen hücre içini doldurmuyor ise hangi posizyonda duracağını belirtmek için kullanılır. Alabileceği değerler GridBagConstraints.NORTH, GridBagConstraints.WEST gibi GridBagConstraints içinde sabitler olarak belirlenmiştir.

GridBagConstraints.weigthx ve GridBagConstraints.weigthy
Birden fazla bileşenin değerlendirmesi yapılırken öncelik belirtmek için kullanılır.

GrigBagLayout kullanımı hakkında daha fazla bilgi için The Java AWT: GridBagLayout ve GridBagLayout API dokümanlarına bakılabilir.

0 Yorum:

Cevze, Java yazılım geliştirme ortamı ile ilgili konuları içeren bir Hakan Uygun weblogudur. Yapımında Blogger-Templates'den şablon kullanımıştır. Ayrıca Cezve resmi de mehmetefendi.com'dan alınmıştır.