Java - Grafické rozhraní (39.díl)

Napsal O webu (») 30. 6. 2008 v kategorii Programování, přečteno: 3612×
obrazky/java_logo.png

Layout managery

Pro přidávání nových komponent jsou používány správce uspořádání, tzv. layout managery. Na různých platformách jsou velikosti grafckých komponent různé. Layout managery zajistí, že při přechodu mezi platformami budou velikosti a poloha jednotlivých komponent automaticky přepočteny (tj. komponenty nebudou nevhodně překryty či vůči sobě posunuty) a aplikace bude vypadat neustále hezky :-). V Javě se s layout managery pracuje prostřednictvím tříd. Pro nastavení uspořádání komponent používáme příkaz setLayout(LayoutManager manager).

Parametrem je odkaz ukazující na objekt typu LayoutManager. Pro práci s layout managerem je nutno importovat balík java.awt.*. S layout managery se seznámíme podrobněji v dalších částech seriálu.

Pokusme se na formulář vytvořený v předchozí kapitole přidat novou komponentu, a to tlačítko JButton a to nejprve bez využití layout manageru. O vytvoření tlačítka se postará následující kód
JButton but=new JButton(AHOJ);
V konstruktoru provádíme inicializace prostřednictvím řetězce představujícího popis tlačítka. Metodou getContnentPane() lze získat kontejner představující plochu okna, do kterého přidáme metodou add(Component c) novou komponentu.
o.getContentPane.add(but);
Celý kód bude vypadat takto
import javax.swing.*;
public class Komponenty {
public Komponenty()
{
Okno o=new Okno();
o.setSize(320, 240);
o.setTitle("Moje okno");
JButton but=new JButton(AHOJ);
o.getContentPane.add(but);
o.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
o.setVisible(true);
}
}

Výsledek nás poněkud překvapí, tlačítko bude zabírat celou plochu okna.

Postup zopakujeme s využitím layout manageru. Vytvoříme novou proměnou typu FlowLayout obsahující odkaz na instanci správce rozložení komponent
FlowLayout f=new FlowLayout();
Metodou setLayout(LayoutManager lm) nastavíme pro zvolenou komponentu tento správce rozložení
o.setLayout(f);
Oba kroky lze spojit do jednoho.
o.setLayout(new FlowLayout());
Výsledný kód vypadá takto
import javax.swing.*;
import java.awt.*;
public class Komponenty {
public Komponenty()
{
Okno o=new Okno();
o.setSize(320, 240);
o.setTitle("Moje okno");
o.setLayout(new FlowLayout());
JButton but=new JButton(AHOJ);
o.getContentPane().add(but);
o.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
o.setVisible(true);
}
}

Přeložíme -li a spustíme vytvořený program, velikost tlačítka již bude normální.

Pokusme se vytvořit více tlačítek, která pojmenujeme. Jak budou na komponentě JFrame uspořádány? Výsledek je patrný na následujícím obrázku. Tlačítka jsou v každé řadě vycentrovány vzhledem ke komponentě, na které leží.

Podrobněji se s layout managery seznámíme již brzy.
Autor: Filip Koval
Štítky: Java
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel čtyři a dvanáct