Lekce 9 – Swing (desktopové aplikace, GUI)
Repository s příklady k lekci: j1-lekce09
Osnova
- Knihovny pro GUI v Javě:
- AWT – součástí Javy, zastaralé, dnes už se samostatně nepoužívá (ale staví na něm Swing)
- Swing – součástí Javy, nejpoužívanější (používá ho např. IntelliJ Idea)
- JavaFX – bylo zamýšleno jako náhrada Swingu, připojeno k Javě – ale v posledních verzích Javy ho Oracle vyčlenil do samostatného projektu OpenFX a dal od něj ruce pryč
- SWT – externí knihovna, používá přímo komponenty operačního systému, takže aplikace je pak závislá na konkrétním OS (ale pořád může být ve variantách pro různé OS)
- Komponenty
- JFrame – okno aplikace
- JPanel – obecný panel, skládají se do něj další komponenty
- JLabel – popisek komponenty
- JTextField – jednořádkový textový vstup
- JCheckBox – checkbox, přepínač, zaškrtávátko – pokud je jich víc, jsou na sobě nezávislá
- JRadioButton – radio, radiobutton, přepínač – pokud je jich víc, může být vybraný jen jeden z nich
- JTextArea – víceřádkový text
- JPasswordField – textový vstup pro zadání hesla (maskuje vstup hvězdičkami)
- JButton – tlačítko
- JSpinner – jednořádkový textový vstup s krokováním (typicky pro zadávání čísel)
- … a další (combobox, seznam, tabulka, strom, slider, menu, …)
- look&feel – „grafické téma“ – jak komponenty vypadají („look“) a jak se chovají („feel“)
- layout manažer – zajišťuje skládání komponent do panelu
- BorderLayout – umísťování k okrajům (nahoře, dole, vlevo, vpravo) a do centrální plochy
- BoxLayout – umísťování v řadě (vedle sebe nebo pod sebou)
- CardLayout – přepínání záložek (jako taby v prohlížeči)
- GroupLayout – umisťování do mřížky
- GridBagLayout – komplexnější umisťování do mřížky
- OverlayLayout – překrývání komponent
- SpringLayout – umisťování pomocí pravidel
- MigLayout – univerzální layout manažer vhodný pro formuláře
- JGoodies Layout – univerzální layout manažer vhodný pro formuláře, starší verze zdarma
Dokumentace
- modul java.desktop
- MigLayout
- FlatLaf – Flat Look and Feel
Cvičení
- Forkni a naklonuj si repository j1-lekce09.
- Vyzkoušej, že ti jde aplikace spustit.
- Přidej do aplikace textové pole s labelem pro e-mail a telefon.
- Přidej je do dalšího řádku pod adresu, obě položky na jeden řádek (podobně, jako je jméno a příjmení).
- Ostatní položky se posunou níž.
- Při kliknutí na tlačítko Uložit přidej do výpisu e-mail a telefon.
- Implementuj kliknutí na tlačítko Smazat, které vypíše do konzole text *Mažu kontakt
.*
Úkol
Z této lekce je 6. domácí úkol.