Dialogy a vyskakovací okna
Z MiS
Vyskakovací okna
- Vyskakovací okno (message box) je modální — běh aplikace se přeruší, dokud uživatel nepotvrdí okno.
- K vyvolání okna slouží třída
JOptionPanez balíčkujavax.swing. - Vyskakovací okno by mělo vyskočit uprostřed okna, ze kterého je vyvoláno, proto potřebuje odkaz na své rodičovské okno.
- Rodičovské okno předáváme jako první parametr.
- Pokud předáme
null, bude vyskakovací okno uprostřed obrazovky.
- Jako poslední parametr předáváme typ okna:
-
JOptionPane.ERROR_MESSAGE -
JOptionPane.WARNING_MESSAGE -
JOptionPane.INFORMATION_MESSAGE
-
- Příklad
if (chyba > 3) {
JOptionPane.showMessageDialog(null,
"Tohle píši ve vyskakovacím okně!",
"Titulek okna", JOptionPane.WARNING_MESSAGE);
}
Dialogy pro výběr souboru
- Dialogy pro výběr souboru realizuje třída
JFileChooserz balíčkujavax.swing.
- Zobrazení jednotlivých typů dialogu
- Třída má předdefinované dialogy pro otevření a uložení a můžeme si vytvořit i dialog s vlastním popisem.
- Dialogy mají společný základ, liší se v detailech chování a v popisu tlačítek.
- K dispozici jsou:
-
showOpenDialog -
showSaveDialog -
showDialog... zde zadáváme jako parametr i popis dialogu
-
- Při zobrazení dáváme jako parametr rodičovské okno — dialog bude umístěn uprostřed okna.
JFileChooser fc = new JFileChooser(); fc.showOpenDialog(this);
- Návratová hodnota a vybraný soubor?
- Dialog vrací návratovou hodnotu, kterou můžeme porovnat s konstantou
JFileChooser.APPROVE_OPTIONa zjistit tak, jestli uživatel potvrdil výběr souboru. - Vybraný soubor získáme voláním metody
getSelectedFile().
JFileChooser fc = new JFileChooser();
int result = fc.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
File selectedFile = fc.getSelectedFile();
System.out.println("Uživatel vybral soubor: "+selectedFile.getPath());
} else {
System.out.println("Uživatel ukončil dialog bez výběru souboru."
System.out.println("Například zvolil Storno/Cancel.");
}
- Výchozí cesta (path)
- Pokud v konstruktoru předáme cestu ke složce, otevře se dialog na začátku v této složce.
JFileChooser fc = new JFileChooser(".");
- Instance
JFileChoosersi mezi jednotlivými voláními pamatuje naposledy použitou cestu. Je tedy vhodné používat po celou dobu běhu aplikace jednu instanci.
- Dodatečně lze výchozí cestu nastavit pomocí metody
setCurrentDirectory(...).
- Nastavení filtru souborů zvoleného typu
- Můžeme nastavit, že dialog bude nabízet jen soubory s vybranými příponami.
fc.setFileFilter(new FileNameExtensionFilter("Obrázky", "png", "jpg"));
- Příklad použití
JFileChooser fc = new JFileChooser(".");
...
fc.setFileFilter(new FileNameExtensionFilter("Project files", "csv", "prj"));
int vysledek = fc.showOpenDialog(this);
if (vysledek == JFileChooser.APPROVE_OPTION) {
File zvolenySoubor = fc.getSelectedFile();
Otevři soubor a zpracuj ho...
}
- Další zdroje