Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

6. Cvičení

Na tomto cvičení se naučíte vytvořit okno s grafickými prvky. Naučíte se vytvářet a umísťovat grafické prvky pomocí Layout Managerů. Během tohoto cvičení nepoužívejte žádný designer z vývojového prostředí.

Úkoly na cvičení

GUI

  1. Projděte si příklady na základní použití GUI.
  2. Seznamte se s Layout Managery
  3. Vytvořte GUI pro jednoduchý čítač s funkcemi plus jedna, reset a konec. Použijte JLabely a JButtony a vhodné layout managery.
  4. Zajistěte spuštění Vašeho okna v samostatném vlákně.
  5. Doplňte obsluhy tlačítek pomocí všech přístupů z následující sekce. S cvičícím porovnejte výhody a nevýhody jednotlivých přístupů.
  6. Doplňte obsluhu události, kdy se odpočet čítače dostane na nulu. V ten okamžik se zobrazí dialogové okno, ve kterém bude mít uživatel možnost nastavit novou počáteční hodnotu čítače.
V úlohách na cvičení je zakázáno používat layouty určené zejména pro volné pozicování v grafických designérech GUI,
např. GroupLayout, AbsoluteLayout, null (bez použití layout manažeru) apod.
Většinu rozložení prvků lze dosáhnout kombinací
FlowLayout, BorderLayout, příp. GridLayout.

Zpracování událostí

Vytvořte a vzájemně porovnejte obsluhy události stisku tlačítek (proč je lepší obsluha ActionPerformed než kliknutí myši?) a to pomocí:

  1. speciální třídy deklarované jako public (ve svém souboru), tzv. handler události,
  2. handleru deklarovaného v souboru popisujícím okno,
  3. vnitřní třídy,
  4. anonymní vnitřní třídy,
  5. implementace rozhraní ActionListener přímo třídou reprezentující okno.

Při porovnání zohledněte tato kritéria:

  1. možnost použití stejné obsluhy pro více tlačítek ležících v jednom okně (tedy něco jako pexeso) či v několika různých oknech. Příkladem může být požadavek na ukončení aplikace vyvolaný z různých míst programu a vyžadující kontrolu uložení dat. (V této souvislosti je možné zmínit správné řešení tohoto problému pomocí akcí - Action, nicméně v této fázi seznamování s událostmi je ještě příliš vzdálený),
  2. možnost přímého přístupu k položkám třídy (u nás popisek zobrazující počet kliknutí na tlačítko),
  3. možnost předání nějakých parametrů konstruktoru obslužné třídy, např. odkaz na okno,
  4. možnost různých metod pro více tlačítek na jednom okně.
Spouštění JFrame ve vlastním vlákně:

public static void main(String[] args) {
              
        SwingUtilities.invokeLater(new Runnable() {
             @Override
             public void run() {
                  Citac citac = new Citac("MyCitac");
                  citac.setVisible(true);
             }
        });
    }

Studijní materiály

courses/b0b36pjv/tutorials/06/start.txt · Last modified: 2020/04/01 09:35 by mudromar