­čÜž GroupLayouts

Java'da group layout kavram─▒

­čÄĄ ├ľn S├Âz

─░nternet'te pek kayna─č─▒ bulunmayan ve di─čer layoutlara nazaran daha zor olan GroupLayout, do─čru yerlerde kullan─▒ld─▒─č─▒nda olduk├ža kullan─▒┼čl─▒ olmakta. Video yok mu dersen (ki bu yaz─▒da ├žok detayl─▒ bir ┼čekilde ele ald─▒m) buraya t─▒klayarak farkl─▒ bir kayna─ča bakabilirsin :(

K─▒saca GroupLayout

  • Hem yatay, hem de dikey olarak ├Âzel tasarlanm─▒┼č bir layout olu┼čturmam─▒za olanak sa─člamakta.

  • Bu layout di─čer layoutlar─▒n aksine, new GroupLayout(...) ┼čeklinde kullan─▒lmamakta, bunu kullanmak i├žin GroupLayout gl = new GroupLayout(component); ┼čeklinde nesnesini olu┼čturup ├Âzelle┼čtirmemiz gerekmekte.

    • compenent ; Layout'u kullanacak olan compenent.

  • ├ľzelle┼čtirmeyi yaparken, soldan sa─ča (horizontal) ve yukar─▒dan a┼ča─č─▒ (vertical) olarak componentlerin konumlar─▒n─▒ ayarlamam─▒z gerekmekte. Ayr─▒ca girilen kodlar─▒n birbiri ile uyumlu olmas─▒ gerekmekte, aksi halde kod hata verecektir.

Ana GroupLayout Metdolar─▒

  • setHorizontalGroup(Group grup); Componentlerin yatay konumlar─▒n─▒ bu metodu kullanarak ayarlayaca─č─▒z.

  • setVerticalGroup(Group grup); Componentlerin dikey konumlar─▒n─▒ ayarlamak i├žin.

  • Bu iki metodun i├žerisine;

    • createSequentialGroup(); Ard─▒┼č─▒k olarak compenent eklemek i├žin olu┼čturulan grup.

    • createParallelGroup(); Paralel olarak component eklemek i├žin olu┼čturulan grup.

  • Bu metodlar─▒n ard─▒ndan da

    • addComponent(component); ile componentlerimizi ekleyece─čiz.

    • addGap(...); ile gerekirse bo┼čluk ekleyece─čiz.

Temel Yap─▒l─▒┼č ┼×ekli

  • Yatay ─░nceleme i├žin hayali dikey ├žizgiler

  • Dikey ─░nceleme i├žin hayali yatay ├žizgiler ├žiziyoruz

  • Ayn─▒ ├žizgide olanlar paralel, farkl─▒ ├žizgilerde olanlar seridir.

Layout ├Ârne─či

Basit Bir ├ľrnek

Alt taraftaki gibi bir ├ž─▒kt─▒ almak istedi─čimiz zaman, ad─▒m ad─▒m yatay ve dikey olarak inceleme yapmam─▒z gerekmekte; (gl = GroupLayout, b1 = buton1, b2 = buton2

Temel layout yap─▒s─▒

Yatay Olarak ─░ncelersek

Buton1 ve Buton2 birbirlerine seri (ard─▒┼č─▒k) durmakta.

gl.setHorizontalGroup(
gl.createSequentialGroup()
.addComponent(b1)
.addComponent(b2)
);
);

Dikey Olarak ─░ncelersek

Buton1 ve Buton2 birbirlerine paralel durmakta.

gl.setVerticalGroup(
gl.createParallelGroup()
.addComponent(b1)
.addComponent(b2)
);
);

Detayl─▒ Resim ─░le A├ž─▒klama

Detayl─▒ a├ž─▒klama

Biraz Daha Zor Bir ├ľrnek

Alt taraftaki gibi bir ├ž─▒kt─▒ almak istedi─čimiz zaman, ad─▒m ad─▒m yatay ve dikey olarak inceleme yapmam─▒z gerekmekte; (gl = GroupLayout, b1 = buton1, b2 = buton2)

Bo┼čluklu tasar─▒m

├ľrne─či Yatay Olarak ─░ncelersek

Buton1 ve Buton2 birbirlerine seri (ard─▒┼č─▒k) durmakta.

  • Yatayda 10px bo┼čluk var.

  • ─░nceleme 1'de alt k─▒s─▒mdaki yeri bulup, b1 ve b2 aras─▒na .addGap(10) eklemen yeterli.

gl.setHorizontalGroup(
gl.createSequentialGroup()
.addComponent(b1)
.addGap(10) // Bo┼čluk
.addComponent(b2)
);
);

├ľrne─či Dikey Olarak ─░ncelersek

Dikeyde bo┼čluk bulunmamakta.

Bo┼čluklu ├Ârne─čin kodu
gl.setVerticalGroup(
gl.createParallelGroup()
.addComponent(b1)
.addComponent(b2)
);
);

Ek ├ľrnek Daha

Resim ├╝zerinde birden fazla bo┼čluklu ├Ârnek

Karma┼č─▒k Bir ├ľrnek

Karma┼č─▒k bir ├Ârnek

Yatay Olarak İncelersek (Kırmızı Çizgiler)

Buton1 ve Buton2 birbirlerine seri (ard─▒┼č─▒k) durmakta. ( Dikey konumlar─▒n─▒ g├Âz ard─▒ ediyoruz, tek boyut olarak inceliyoruz.)

gl.setHorizontalGroup(
gl.createSequentialGroup()
.addComponent(b1)
.addComponent(b2)
);
);

Dikey Olarak İncelersek (Mor Çizgiler)

Buton1 ve Buton2 birbirlerine seri durmakta. (Yatay konumlar─▒n─▒ g├Âz ard─▒ ediyoruz, tek boyut olarak inceliyoruz.)

gl.setVerticalGroup(
gl.createSequentialGroup()
.addComponent(b1)
.addComponent(b2)
);
);

Sonu├ž Resmi

Karma┼č─▒k ├Ârnek sonucu

H─▒zl─▒ ├ľrnekler

H─▒zlaca bir ├Ârnek

Yatay Olarak ─░ncelersek:

  • Buton1, Buton2 ve Buton3 'e paralel.

  • Buton2 ve Butom3 birbirlerine seri.

Dikey Olarak:

  • Buton1, Buton2 ve Buton3 'e seri.

  • Buton2 ve Buton3 paralel.

2. zor ├Ârnek

Yatay Olarak ─░ncelersek (K─▒rm─▒z─▒lar):

  • 1, 5 paralel

  • 2, 4 paralel

  • 3, (2, 4), (1, 5) seri

Dikey Olarak;

  • 4, 3 paralel

  • 1, 2, (4, 3), 5 seri

3. zor ├Ârnek