GUI v Javě

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Vytvoření okna: Doplnění textu, grafická úprava)
(Vytvoření okna: Oprava struktury a vzhledu.)
Řádka 7: Řádka 7:
  
  
== Vytvoření okna ==
+
== Vytvoření okna &mdash; třída <tt>JFrame</tt> ==
  
=== Třída <code>JFrame</code>: ===
+
* Instance třídy <code>JFrame</code> vytváří okno s titulním pruhem a tlačítky.
* Realizuje okno s titulním pruhem a tlačítky.
+
* My vytváříme vlastní potomky třídy <tt>JFrame</tt>.
* Když vytváříme okna, vytváříme potomky třídy <tt>JFrame</tt>
+
* Každý potomek má v&nbsp;sobě vloženy další objekty (komponenty), které jsou v okně obsaženy (tlačítka, textová pole,...).
  
Vlastnosti okna
+
; Vlastnosti okna
 
* <code>setTitle(String ''titulek'')</code>
 
* <code>setTitle(String ''titulek'')</code>
 
** nastavuje titulek okna (text v titulním pruhu).
 
** nastavuje titulek okna (text v titulním pruhu).
Řádka 21: Řádka 21:
 
*** k tomu slouží konstanta <tt>JFrame.EXIT_ON_CLOSE</tt>.
 
*** k tomu slouží konstanta <tt>JFrame.EXIT_ON_CLOSE</tt>.
  
Velikost okna
+
; Velikost okna
 
* <code>pack()</code>
 
* <code>pack()</code>
 
** zmenší velikost okna tak, aby se do něj vlezly komponenty, které jsou aktuálně v okně.
 
** zmenší velikost okna tak, aby se do něj vlezly komponenty, které jsou aktuálně v okně.
  
Zobrazení okna
+
; Zobrazení okna
 
* <code>setVisible(boolean maBytViditelne)</code>
 
* <code>setVisible(boolean maBytViditelne)</code>
 
** Zobrazí nebo zneviditelní okno.
 
** Zobrazí nebo zneviditelní okno.
  
<tt>initComponents()</tt>
+
; Metoda <tt>initComponents()</tt>
 
* Je zvykem v konstruktoru okna zavolat soukromou metodu <tt>initComponents()</tt>.
 
* Je zvykem v konstruktoru okna zavolat soukromou metodu <tt>initComponents()</tt>.
* V rámci této metody připravíme všechny součásti okna.
+
* V rámci této metody připravíme všechny komponenty, které mají být součástí okna.
  
 
<div class="Priklad">
 
<div class="Priklad">

Verze z 17. 2. 2015, 14:13


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

Vlastnosti okna
Velikost okna
Zobrazení okna
Metoda initComponents()
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:

Je-li komponent v okně mnoho, můžeme je uspořádat na

Třída JButton

Třída JLabel

Třída JTextField

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;
   }

Vkládání komponent do okna

Třída JFrame

Příklad



Zpracování událostí, posluchač

Postup zpracování události tlačítka

  1. uživatel klikne na tlačítko
  2. objekt reprezentující tlačítko vygeneruje událost (event)
    prakticky vytvoří novou instanci třídy ActionEvent), která nese podrobnější informace (které tlačítko myši bylo stisknuto, na jakých souřadnicích,...
  3. objekt reprezentující tlačítko událost pošle všem svým „posluchačům“ (posluchači jsou objekty, které splňují rozhraní (interface) ActionListener)
    prakticky se „poslání události“ realizuje tak, že tlačítko zavolá metodu actionPerformed(ActionEvent e), kterou předepisuje rozhraní ActionListener. Jako parametr metody se předá objekt události
  4. posluchač provede akci, která se má provést
    programátor tedy akci popíše v kódu metody actionPerformed(ActionEvent e) v posluchači

Aby bylo možné na stisk tlačítka reagovat, musíme:

  1. mít třídu posluchače (interface ActionListener)
  2. vytvořit instanci třídy posluchače
  3. zaregistrovat instanci třídy posluchače u tlačítka.

class ActionEvent

interface ActionListener

Příklad


Layout Manager

Nejběžnější třídy layout managerů v Javě

Třídy JFrame a JPanel

Příklad

  • Přidejte k předchozímu příkladu dvě textová pole s popiskami (label) „Originál“ a „Kopie“.
  • Textové okno s popisem „Kopie“ nebude editovatelné.
  • Tlačítko upravte tak, že na něm bude popis „Kopíruj“.
  • Při stisknutí tlačítka se text z pole „Originál“ zkopíruje do pole „Kopie“.
  • Při stisku tlačítka se do textového výstupu programu opíše text z popisu tlačítka.

Související stránky

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje