Java - Komponenty (58.díl)

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

JPanel

Panel představuje nejjednodušší typ kontejnerové komponenty. Jeho jediným úkolem je organizovat komponenty, které jsou v něm obsaženy. Panely se používají při návrhu vzhledu okna. Za použití vhodného layout manageru umístíme na formulář panely, na tyto panely následně další komponenty. Pro JPanel lze
použít následující konstruktory:
JPanel();
JPanel(LayoutManager);

První konstruktor vytvoří panel s výchozím layout managerem (FlowLayout), druhý konstruktor vytvoří panel s rozložením komponent dle zadaného layout manageru. Vzhled panelu a jeho okraje (borders) je možno nastavit prostřednictvím metody setBorder (Border b). V Javě existuje několik typů borderů, jejich přehled je uveden v následující tabulce.
Border Varianty
BevelBorder BevelBorder.LOWERED BevelBorder.RAISED
CompoundBorder -
EmptyBorder -
EtchedBorder EtchedBorder.LOWERED EtchedBorder.RASISED
LineBorder LineBorder.createBlackLineBorder() LineBorder.createGrayLineBorder()
SoftBevelBorder SoftBevelBorder.LOWERED SoftBevelBorder.RAISED
TitledBorder TitledBorder.DEFAULT_POSITION TitledBorder.LEFT TitledBorder.RIGHT TitledBorder.TOP TitledBorder.BOTTOM

Popis jednotlivých borderů nebudeme z důvodu rozsáhlosti provádět, uvedeme pouze dvě doporučení. Pokud budeme chtít použít border bez ohraničení pouze jako podkladovou komponentu pro jiné komponenty, použijeme EmptyBorder.

Chceme -li použít border ohraničující komponenty na JPanelu, použijeme TitledBorder. Nastavení borderu pro panel provádíme metodou setBorder(Border b). V následujícím příkladu vytvoříme dva panely, oběma nastavíme TitledBorder a každému z nich titulek. Komponenty na formu budou využívat GridLayout.

Pro vytvoření panelů použijeme implicitní konstruktory.
JPanel p1=new JPanel();
JPanel p2=new JPanel();

Vytvoříme dvě instance třídy TitledBorder, v konstruktoru uvedeme titulky.
TitledBorder b1=new TitledBorder("První");
TitledBorder b2=new TitledBorder("Druhý");

Nastavíme polohu titulku na výchozí pozici, tj. vlevo nahoru.
b1.setTitlePosition(TitledBorder.DEFAULT_POSITION);
b2.setTitlePosition(TitledBorder.DEFAULT_POSITION);

Oběma panelům nastavíme vytvořené bordery.
p1.setBorder(b1);
p2.setBorder(b2);


public Panely(int width, int height) {
this.setSize(width, height);
this.setTitle("Panely");
this.setLayout(new GridLayout(2,1));
JPanel p1=new JPanel();
JPanel p2=new JPanel();
TitledBorder b1=new TitledBorder("První");
TitledBorder b2=new TitledBorder("Druhý");
b1.setTitlePosition(TitledBorder.DEFAULT_POSITION);
b2.setTitlePosition(TitledBorder.DEFAULT_POSITION);
p1.setBorder(b1);
p2.setBorder(b2);
this.getContentPane().add(p1);
this.getContentPane().add(p2);
}


Do každého z panelů můžeme následně přidat dvě tlačítka. Oběma panelům nastavíme opět BorderLayout.
p1.setLayout(new GridLayout(1,2));
p2.setLayout(new GridLayout(1,2));

Vytvoříme dvě tlačítka a metodou add() je přidáme na panely. Při práci s panely již není potřeba pracovat s grafckým kontextem komponenty prostřednictvím metody getContentPane().
JButton but1=new JButton("Prvni");
JButton but2=new JButton("Druhe");
JButton but3=new JButton("Treti");
JButton but4=new JButton("Ctvrte");
p1.add(but1);
p1.add(but2);
p2.add(but3);
p2.add(but4)

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 tři a tři