Lekce 11 - Timer a SwingWorker v Java Swing
V minulém dílu, Zpracování kliknutí na souřadnice v Java Swing, jsme dokončili aplikaci, která vykreslovala geometrické tvary na poděděný JPanel.
Dnes se naučíme používat Timer
a SwingWorker
.
Oba ovládací prvky si vyzkoušíme na názorných příkladech.
Smyčka formulářové aplikace
Pokud si vzpomínáte na zdejší Java tutoriály pro
konzoli, tak pokud jsme chtěli něco opakovat, jednoduše jsme kód
vložili do cyklu. Pokud jsme chtěli odpočítat 10
vteřin, kód
by vypadal asi takto:
for (int i = 10; i > 0; i--) { System.out.println(i); try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(OdpocetKonzole.class.getName()).log(Level.SEVERE, null, ex); } }
Výsledek:

Ve Swingu toto nelze. Výše uvedená operace trvá 10
vteřin.
Jakmile spustíme nějakou podobnou dlouhotrvající operaci, vlákno
formuláře ji vykonává a celý formulář zamrzne. Aplikace přestane
reagovat a po několika vteřinách dokonce operační systém nabídne její
ukončení, jelikož se mu nehlásí. Je to z toho důvodu, že jsme zastavili
smyčku
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V tutoriálu pro Java Swing si představíme Timer, který umožňuje spouštět událost po časovém intervalu a dále SwingWorker, který spustí operaci na pozadí.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.