Dialogy a vyskakovací okna

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Přidán filtr souborů vybraného typu.)
(Dialogy pro výběr souboru: Změna struktury JFileChooser, doplnění volby cesty dodatečně.)
 
Řádka 23: Řádka 23:
 
== Dialogy pro výběr souboru ==
 
== Dialogy pro výběr souboru ==
 
* Dialogy pro výběr souboru realizuje třída <code>JFileChooser</code> z balíčku <code>javax.swing</code>.
 
* Dialogy pro výběr souboru realizuje třída <code>JFileChooser</code> z balíčku <code>javax.swing</code>.
 +
 +
; 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&nbsp;vlastním popisem.
 
* Dialogy mají společný základ, liší se v detailech chování a v popisu tlačítek.
 
* Dialogy mají společný základ, liší se v detailech chování a v popisu tlačítek.
* Dialog vrací návratovou hodnotu, kterou můžeme porovnat s konstantou <tt>JFileChooser.APPROVE_OPTION</tt> a zjistit tak, jestli uživatel potvrdil výběr souboru.
+
* K&nbsp;dispozici jsou:
* Při zobrazení dáváme jako parametr rodičovské okno.
+
** <code>showOpenDialog</code>
 +
** <code>showSaveDialog</code>
 +
** <code>showDialog</code>... zde zadáváme jako parametr i popis dialogu
  
 +
* Při zobrazení dáváme jako parametr rodičovské okno &mdash; 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 <code>JFileChooser.APPROVE_OPTION</code> a zjistit tak, jestli uživatel potvrdil výběr souboru.
 +
* Vybraný soubor získáme voláním metody <code>getSelectedFile()</code>.
 +
 +
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&nbsp;této složce.
 
* Pokud v konstruktoru předáme cestu ke složce, otevře se dialog na začátku v&nbsp;této složce.
 
  JFileChooser fc = new JFileChooser(".");
 
  JFileChooser fc = new JFileChooser(".");
  
* Instance <tt>JFileChooser</tt> si mezi jednotlivými voláními pamatuje naposledy použitou cestu. Je tedy vhodné používat po celou dobu běhu aplikace jednu instanci.
+
* Instance <code>JFileChooser</code> si 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 <code>setCurrentDirectory(...)</code>.
  
; Zobrazení jednotlivých typů dialogu:
 
* <code>showOpenDialog</code>
 
* <code>showSaveDialog</code>
 
* <code>showDialog</code>... zde zadáváme jako parametr i popis dialogu
 
  
 
; Nastavení filtru souborů zvoleného typu
 
; Nastavení filtru souborů zvoleného typu
 
* Můžeme nastavit, že dialog bude nabízet jen soubory s&nbsp;vybranými příponami.
 
* Můžeme nastavit, že dialog bude nabízet jen soubory s&nbsp;vybranými příponami.
 
  fc.setFileFilter(new FileNameExtensionFilter("Obrázky", "png", "jpg"));
 
  fc.setFileFilter(new FileNameExtensionFilter("Obrázky", "png", "jpg"));
 
 
; Získání vybraného souboru:
 
* <code>getSelectedFile</code>
 
  
 
; Příklad použití:
 
; Příklad použití:

Aktuální verze z 7. 3. 2023, 07:36


Vyskakovací okna

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

Zobrazení jednotlivých typů dialogu
JFileChooser fc = new JFileChooser();
fc.showOpenDialog(this);
Návratová hodnota a vybraný soubor?
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)
JFileChooser fc = new JFileChooser(".");


Nastavení filtru souborů zvoleného typu
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
Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje