Vlastnosti komponent
Pro získání vlastností komponent či jejich nastavování používáme metody zvané gettery a settery. Jejich názvy jsou v tomto případě tvořeny jménem vlastnosti, např. Size, Title, Name, Font, Visible, Location..., a slova set nebo get. Gettery jsou bezparametrické, settery obsahují seznam parametrů, které je potřeba komponentě nastavit. Vzniknou tak metody getSize(), getTitle(), getName(), getFont(), getLocation() ..., či setSize(), setTitle(), setName(), setFont(), setLocation(). Upozorněme, že veškerá nastavení je nutné provést před tím, než bude okno zobrazeno.Zaměření komponenty. Důležitou vlastností komponenty je její zaměření, tzv. fokus. V každém okamžiku je jedna z komponent nacházejících se na formuláři aktivní, říkáme o ní, že je zaměřená (tj.má fokus). Tento stav se projeví grafickým zvýrazněním komponenty. Zaměřená komponenta může reagovat i na vstup z klávesnice (např. klávesové zkratky).
Nastavení vzhledu komponent
Každému formuláři ale i ostatním ostatním komponentám umístěným na něm můžeme nastavit různý vzhled, tzv. look and feel. Komponenty v Javě jsou tedy skinovatelné. Existuje velké množství různých skinů, které jsou volně dostupné na Internetu. Velikosti, tvary, barvy jednotlivých komponent mohou být různé.Pro správu vzhledů používáme statickou třídu UIManager, kterou je nutno importovat. Nejčastěji používanou metodou je metoda setLookAndFeel(), které umožňující nastavit vzhled aplikace. Kód je obalen v sekvenci try-catch, jedná se o synchronní výjimku.
try
{
UIManager.setLookAndFeel(UIManager.
getSystemLookAndFeelClassName());
}
catch (Exception e) {
// handle exception
}
K dispozici jsou dvě základní varianty:
Nastavení look and feel metodou setLookAndFeel musí být provedeno před zobrazením formuláře. Existují i metody, s jejichž použitím je možno měnit vzhled aplikace za běhu. Další podrobnosti o možnostech nastavování vzhledu komponent lze nalézt v dokumentaci na http://java.sun.com/docs/books/tutorial/uiswing/lookandfeel/plaf.html.
Ukázky vzhledu téže aplikace s výše uvedenými looks and feels jsou zobrazeny na následujícím obrázku.
Nastavování parametrů grafického rozhraní v konstruktoru jiné třídy
Přístup, při kterém jsou parametry grafického rozhraní nastavovány v metodě main() třídy, ve které byla instance s grafickým rozhraním vytvořena, není vhodný. Často potřebujeme vytvořit několik instancí téže třídy, z nichž každá bude disponovat stejným grafickým rozhraním. Z tohoto důvodu je vhodné provést nastavení jejich vlastností v konstruktoru třídy.import javax.swing.UIManager;
public class Komponenty {
public Komponenty()
{
Okno o=new Okno();
o.setSize(640, 480);
o.setTitle("Moje okno");
o.setLocation(100,100);
o.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
o.setVisible(true);
}
public static void main (String [] args)
{
try
{
UIManager.setLookAndFeel(UIManager.
getSystemLookAndFeelClassName());
}
catch (Exception e)
{
e.printStackTrace();
}
new Komponenty();
}
Nastavení look and feel je provedeno v metodě main(). Pokud se nepovede, zpravidla pokračujeme běžným způsobem, tj. vytvoříme grafcké rozhraní a smíříme se s tím, že nevypadá tak, jak požadujeme.
Autor: Filip Koval