<$BlogRSDURL$>

Java ve Sayfa Düzeni 

Eğer grafik kullanıcı arayüzü ( GUI ) geliştiriyorsanız, hangi progamlama dili ya da görsel kütüphaneyi kullanırsanız kullanın, görsel bileşenlerininizin sunum penceresi üzerinde yerleşimini bir şekilde belirlemeniz gerekmektedir. Bu problemin iki parçasından ilki olan görsel tasarım, tasarlanan formun genel yapısınının nasıl olacağı, hangi genel kuralların uygulacağı, hangi renk paleti, hangi ikon setinin kullanılacağı gibi soruları kapsar ve genel olarak grafik tasarımcıların işidir. Ayrıca tartışılabilecek bir konu olmakla beraber bu yazının kapsamı dışındadır. Diğeri ise bu karar verilmiş görsel yolun nasıl gerçekleştirileceğidir.

Delphi, VB ve benzeri RAD araçlarını kullanımı sırasında izlenen genel yöntem, bileşeni sürükleyip form üzerinde istediğiniz bir yere koymanız ve gerekli yükseklik genişlik ayarlarını yapıp bırakmaktır. Bu şekilde gerçekleştirilen formların görsel tasarım kurallarına uyup uymadığı, örneğin formun genişliği değiştiğinde otomatik olarak görsel bileşenlerin yeniden bu duruma uyum sağlayıp sağlamadığı ayrıca kontrol edilmeleri, kodlanmaları gerekir.

Java ise bu sorunu Yerleşim Yöneticileri ( Layout Manager ) tanımlayarak çözme yoluna gitmiştir. Taşıyıcı bileşeninize, taşıdığı bileşenleri nasıl yerleştirmesi gerektiğini tanımlayan bu sınıflar, programcının ayrıca kodlama yapmasını gerektirmeden eklenen bileşenleri kendi kural sistemine göre düzenliyecektir.

Örneğin genel tararım içerisinde formun üst kenarında araç çubuğu, alt kenarında durum çubuğu, sol kenarında ağaç menü, ve geri kalanında ise bir tablo olması gerektiğini düşünüyorsanız, yapmanız gereken BorderLayout kullanmak ve panelinize gereken bileşenleri eklerken BorderLayout üzerindeki yerlerini söylemeniz yeterli olacaktır. Formunuzun konum ve büyüklüğü değiştiğinde BorderLayout bundan haberdar olacak ve kontrolü altındaki bileşenleride bu duruma gere yeniden konumlandıracaktır.

Java AWT ve Swing kütüphaneleri kendi içerisinde bütünleşik yerleşim yöneticileri ile gelmekle beraber isterseniz, kendinizinkini yazabilir ya da yazılmış yöneticilerden istediğiniz birini kullanabilirsiniz.

FlowLayout
Üzerine eklenen bileşenleri soldan sağa doğru sıralar. Eğer aynı sıraya sığdıramaz ise ikinci bir satır oluşturur. Genelde bir panel üzerindeki düğmeleri sıralamak için kullanılır.

Panel p = new Panel();
p.setLayout( new FlowLayout());
p.add( new Button("Tamam"));
p.add( new Button("Vazgeç"));

BorderLayout
Bir taşıyıcının kenarlarını tanımlar. Kuzey, Güney, Doğu, Batı ve Merkez olmak üzere beş bölgesi bulunur ve bileşeleri belirtilen bölgeye yerleştirir.

Panel p = new Panel();
p.setLayout( new BorderLayout());
p.add( new Button("Tamam"), BorderLayout.NORTH );
p.add( new TextArea(), BorderLayout.CENTER );


CardLayout
İçerdiği bileşenleri bir seferde sadece birinin görünür kılan bir yerleşim yöneticisidir. Bileşenler birer anahtar değerle eklenirler ve istendiğinde erişilip ön planlanda sunulmaları sağlanır. Özellikle sayfalardan oluşacak formlar için kullanılır.

Panel p = new Panel();
CardLayout cl = new CardLayout();
c.add( new Panel(), "Panel" );
c.add( new TextArea(), "Metin" );
p.setLayout( c );

GridLayout
Taşıyıcı bileşeni eşit ölceklerden oluşan ızgara dönüştürür. Eklenen bileşenleri sırayla bu hücrelere yerleştirir.

Panel p = new Panel();
p.setLayout( new GridLayout( 3, 2 ));
p.add( new Button("Tamam") );
p.add( new Button("Vazgeç") );

BoxLayout
Verilen bileşenleri, seçiminize göre, yatay ya da dikey sıralar.

Panel p = new Panel();
p.setLayout( new BoxLayout( p, BoxLayout.X_AXIS ));
p.add( new Button("Tamam") );
p.add( new Button("Vazgeç") );

Diğerleri
Haftaya daha karmaşık fakat görsel olarak daha esnek yerleşim yöneticileri : GridBagLayout, SpringLayout, FormLayout ve diğerleri...

1 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.