GUI v Javě
Z MiS
Následující poznámky jsou jen velmi stručnou osnovou. Možností při vytváření grafického rozhraní je mnohem více. Pokud chcete více než jen minimalistický návod, doporučuji:
tutoriál ze stránek Oracle.com
Obsah |
Vytvoření okna
Třída JFrame:
- realizuje okno s titulním pruhem a tlačítky.
Vlastnosti okna
-
setTitle(String titulek)- nastavuje titulek okna (text v titulním pruhu).
-
setDefaultCloseOperation(int akce)- říká co se bude dít při stlačení zavíracího tlačítka.
- naše aplikace většinou mají jediné okno, chceme tedy, aby se při zavření okna zavřela celá aplikace.
- k tomu slouží konstanta JFrame.EXIT_ON_CLOSE.
Velikost okna
-
pack()- zmenší velikost okna tak, aby se do něj vlezly komponenty, které jsou aktuálně v okně.
Zobrazení okna
-
setVisible(boolean maBytViditelne)- Zobrazí nebo zneviditelní okno.
Vkládání komponent do okna
- Okno se skládá z dílčích součástí (komponent). Jsou to tlačítka, zatrhávací políčka, panely, tabulky,...
- Seskládání okna obvykle provádíme v soukromé metodě
initComponents(), kterou pro tento účel vytvoříme.
Vložení komponenty do okna
-
getContentPane().add(Component komponentaVOkne)- vloží do okna komponentu. Pokud chceme mít komponent v okně více, je třeba je uspořádat pomocí „layout manageru“.
Příklad
- Vytvořte aplikaci s oknem, které půjde přesunovat, minimalizovat a při jehož zavření se aplikace ukončí.
- V titulním pruhu bude zobrazen text „Hello world!“.
Textová pole, tlačítka
Do okna vkládáme součásti (komponenty). Komponenty jsou potomky třídy JComponent.
Nejběžnější komponenty jsou:
- tlačítka (
JButton), - textová pole (
JTextField), - popisky (
JLabel).
Je-li komponent v okně mnoho, můžeme je uspořádat na
- panely (
JPanel).
JButton
-
JButton(String popisTlacitka)- text na tlačítku zadáme jako parametr konstruktoru
-
JButton tlStart = new JButton("Start");
-
- text na tlačítku zadáme jako parametr konstruktoru
- reakci na stisk tlačítka nastavíme přiřazením posluchače viz dále
JLabel
-
JLabel(String textPopisu)- text popisky zadáme jako parametr konstruktoru
-
JLabel lCisloA = new JLabel("Zadejte číslo A:");
-
- text popisky zadáme jako parametr konstruktoru
- reakci na stisk tlačítka nastavíme přiřazením posluchače viz dále
JTextField
-
JTextField(int pocetZnaku)- volitelným parametrem konstruktoru je délka pole, vyjádřená početem znaků, které do pole vlezou.
-
String getText()- vrací aktuální text v textovém poli
-
setText(String text)- nastaví do textového pole zadaný text
Pokud potřebujete z textového pole načíst číslo, můžete použít následující metodu:
/**
* Získá číslo z textového pole
*
* @param textovePole Textové pole, jehož hodnota se má převést na číslo
* @return Vrátí hodnotu čísla, zapsaného v textovém poli.
* Pokud text v poli nelze převést na číslo (pole je prázdné apod.),
* vrátí 0
* a navíc do textového pole zapíše výzvu k vložení čísla. */
private int ziskejCislo(JTextField textovePole) {
int vysledek;
try {
vysledek = Integer.parseInt(textovePole.getText());
} catch (NumberFormatException e) {
textovePole.setText("Nastavte platné číslo!");
vysledek = 0;
}
return vysledek;
}
Příklad
- Vytvořte okno s jediným tlačítkem.
- Na tlačítku bude text „Superokno!“