Nastavování parametrů grafického rozhraní v konstruktoru téže třídy
Tento přístup umožňuje lépe oddělit třídu vytvářející okno od třídy, která bude toto okno používat. Vytvoření formuláře je provedeme v konstruktoru třídy Okno. Při použití implicitního konstruktoru budou při vytvoření nové instance třídy Okno vždy vytvořeny formuláře stejných vlastností.import javax.swing.UIManager;
public class Okno extends JFrame {
public Okno()
{
this.setSize(640, 480);
this.setTitle("Moje okno");
this.setLocation(100,100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main (String [] args)
{
try
{
UIManager.setLookAndFeel(UIManager.
getSystemLookAndFeelClassName());
}
catch (Exception e)
{
e.printStackTrace();
}
new Okno();
}
Pokud bychom chtěli velikosti oken nastavit při vytváření instance, bylo by nutno tvorbu formuláře provést v explicitním konstruktoru, který by jako formální parametry využíval parametry formuláři nastavované.
public Okno(int sirka, int vyska)
{
this.setSize(sirka, vyska);
this.setTitle("Moje okno");
this.setLocation(100,100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
Ikona programu. Na formuláři je možno zobrazit i ikonu programu představovanou obrázkem v některém z následujících formátů: JPG, GIF,PNG. Lze si tak vytvářet i ikony vlastní a nespoléhat se jen na výchozí. Standardní velikost ikony je 16x16 pixelů. K těmto operacím slouží třída ImageIcon. V konstruktoru instance třídy zadáme cestu k obrázku a metodou setIconImage(Image i) ho nastavíme jako ikonu
ImageIcon i=new ImageIcon("C:\\Tomas\\ikona.png"); this.setIconImage(i.getImage()
Vytvoření druhého frame. V aplikace je možné vytvořit i další frame. Není to typické, aplikace by měla mít pouze jeden frame a např. okna zobrazovat formou dialogu. Takto vzniklému framu je nutné také ošetřit události při jeho zavírání. Pokud bychom tak neučinili, bylo by ho možno zavřít pouze zavřením
prvního okna.
Přidávání dalších komponent na formulář
Každá top level-komponenta má zvláštní kontejner zvaný content pane obsahující všechny grafické komponenty ležící na top level komponentě. Tvoří ho pouze část komponenty, podívejme se na následující obrázek. Znázorňuje formulář s komponentou Menu. Content pane představuje vnitřní část formulářebez titulkového pruhu a menu.
Obsah content pane je dostupný prostřednictvím metody getContentPane(). Do kontejneru content pane můžeme další komponenty přidávat metodou add(). Grafcké komponenty jsou na top level komponenty přidávány hierarchicky, vytvářejí stromovou strukturu. Kořen stromu vytváří top-level komponenta. Souřadný systém komponent Grafcké komponenty používají vlastní souřadný systém. Jeho počátek je v levém horním rohu okna, osa y směřuje dolů, je představována svislou hranu monitoru, osa x vpravo, je představována vodorovnou hranou monitoru. Hodnoty souřadnic jsou zadávány v pixelech. Velikost souřadnice x je dána hodnotou šířky komponenty, můžeme ji zjistit metodou getWidth(). Velikost souřadnice je dána výškou komponenty, můžeme ji zjistit metodou getHeight().
Autor: Filip Koval