<$BlogRSDURL$>

Java ve Sayfa Düzeni III 

FormLayout

Masaüstü uygulamalarının büyük bir kesimini veri giriş formları oluşturmaktadır. Uygulama içerisinde tutarlı, birbirine benzer bir veri giriş yapısı kurmak programcıdan kullanıcıya kadar herkes için işleri kolaylaştırcaktır. Programcılar açısından, bu formların temel yapısının bir kere belirlenmesi ve uygulama formlarından bağımsız, merkezi olarak geliştirilmesi, veri giriş formu hazırlamayı ve daha sonra yapılabilecek değişiklikleri kolaylaştıracaktır. Kullanıcılar açısından ise öğrenme sürecini kısaltacaktır.

"Mümkün olanı kolaylaştırmak, imkansız olanı mümkün kılmak". Bu temellerden yola çıkarak hazırlanan FormLayout'un temel hedefi form hazırlamayı kolaylaştıracak araçları sunmak. FormLayout da tıpkı GridLayout ve GridBagLayout gibi formu belirlediğiniz ızgaraya böler ve verilen görsel bileşenleri bu ızgara üzerine yerleştirir. Izgarayı belirlemek diğerleri gibi bir fonksiyon seti kullanılafrak yağılabileceği gibi, FormLayout'a has bir dil ile de belirtilebilir.

Bir başka önemli özelliği de mantıksal birim sisteidir. Picel ya da santim gibi fiziksel birimler yerine Dialog Unit ( dlu ) olarak adlandırılan mantıksal birim kullanılır. Bu birim, sistem özellikleri ve font büyüklükleri kullanılarak hesaplanır. Böylece hazırlamış olduğunuz form farklı ortam ve çözünürlüklerde tasarlamış olduğunuz şekle uygun orantılarla sunulur.

Formunuzun büyüklüğünün değişiminin bileşenleriniz üzerine olacak olan etkisini de belirleye bilirsiniz. Hatta satır ve sutun gruplarının bir birleriyle orantılı olarak değişimlerini sağlaya bilirsiniz.


...

PanelBuilder pb = new PanelBuilder( new FormLayout( "default:grow(0.30),2dlu,default:grow(0.70)",
"default,2dlu," + //Row1
"fill:default:grow,2dlu," + //row2
"default,3dlu" //row3
) );

CellConstraints cc = new CellConstraints();

pb.setBorder( Borders.createEmptyBorder( "4dlu,4dlu,4dlu,4dlu" ));

pb.add( tbSelect, cc.xywh( 1, 1, 3, 3 ));

pb.add( cbColumns, cc.xy( 1, 5 ));
pb.add( Utils.buildButtonEdit( tfSearch, btnSearch ), cc.xy( 3, 5 ));

JPanel p = return pb.getPanel();
...



FormLayout, form tasarımlarınızın merkezi olarak geliştirlmesi için çeşitli Builder ve Factory'ler sunmaktadır. Ayrıca tasarım deseni olarakta, bu yolun izlenmesi önerilmektedir. Yani sizin uygulamanız içerisinde yer alacak olan formlar yapılarını belirleyip, bu formları üretebilecek genel sınıflar hazırlamanız.

Bu işlemi kolaylaştırmak için de gerekli olan araçları içermektedir. Belirlenmiş olan ızgara üzerine doğrudan yerleştirme yerine bu işlemi otomatik olarak gerçekleştirecek fonksiyonları kullanarak, form yapılandırıcınızın ızgaradan bağımsız olarak çalışabilmesini sağlayabilirsiniz...

JGoodies Forms, Karsten Lentzsch tarafından geliştirilmiştir ve BSD lisansı ile yayınlanmaktadır.

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.