/ janturon.cz / Výuka / Java / Rozložení prvků v okně

Rozložení prvků v okně

Kontejnery (jímž je i Frame) přidávají do svého obsahu Komponenty metodou add, která má první parametr přidávanou komponentu (může mít i další parametry upřesňující umístění).

Vložíme-li do okna komponentu, roztáhne se tato přes celou jeho plochu:

import java.awt.*; import java.awt.event.*; public class PhoneList extends Frame { public static void main(String args[]) { PhoneList application = new PhoneList(); } private Button testButton = new Button("Test"); public PhoneList() { super("Phone List"); setSize(320,200); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); add(testButton); setVisible(true); } }

Pozn.: v dalším kódu této lekce budu z důvodu úspory místa psát jen relevantní části konstruktoru a nové datové položky, jak je zvýrazněno výše.

Výchozí roztažení lze změnit nastavením jiného rozložení, to lze metodou setLayout, která očekává parametr typu LayoutManager, což jsou v java.awt všechny třídy mající ve svém názvu Layout.

setLayout(new FlowLayout()); add(testButton);

Rozložení prvků PhoneList

Abychom docílili rozložení požadovaného rozložení prvků

rozložení prvků

Nastavíme oknu rozložení BorderLayout, kde do jižní části dáme komponentu List a do severní kontejner Panel s rozložením FlowLayout, do něhož dáme dva prvky TextField a jeden Button.

private Panel top = new Panel(new FlowLayout()); private Button addButton = new Button("+"); private TextField name = new TextField(20); private TextField phone = new TextField(15); private List list = new List(5); public PhoneList() { ... setLayout(new BorderLayout()); add(top,BorderLayout.NORTH); add(list,BorderLayout.SOUTH); top.add(name); top.add(phone); top.add(addButton); pack(); }

Praktická metoda pack() přizpůsobí velikost kontejneru jeho obsahu.

Grafický návrhář v IDE Eclipse

Pokud nyní víte, co je to kontejner, komponenta a layout, jak se kontejneru nastaví layout a jak se přidá komponenta do kontejneru, můžeme začít používat grafický návrhář v IDE Eclipse (tvorba grafiky poslepu by byla zdlouhavá).

Návrhář do Eclipse dodáme jako plugin. Programátoři nejvíce doporučují návrhář WindowBuilderPro, který do Eclipse (verze 4.2 Juno) doinstalujeme z repozitáře Google: v nabídce Help → Install New Software..., kde do pole Work with: přidejte zdroj http://dl.google.com/eclipse/inst/d2wbpro/latest/4.2

Zaškrtněte všechny čtyři nalezené komponenty, nainstalujte a restartujte Eclipse. Poté můžeme do projektu přidávat soubory se šablonou návrháře volbou Ctrl+N → WindowBuilder → Swing Designer zvolením Application Window.

WindowBuilder používá grafické prvky balíku javax.swing, což je rozšíření java.awt s týmiž třídami, jejichž název má prefix J. Obsahuje něco navíc (např. třídu JOptionPane pro tvorbu hlášek stylu alert v Javascriptu) a využívá vlastní vykreslovací nástroje zaručující stejný vzhled pod různými OS.