Fereastra pentru a selecta fișiere și foldere în Java (jfilechooser)
În acest articol vreau să vă spun despre un element foarte popular al interfeței în Java JFileChooser. Este folosit pentru a afișa o listă de fișiere de pe computer și selectați fișierul sau dosarul utilizatorului. În alte limbi se numește pogrammirovaniya OpenDialog și așa mai departe. Pentru a explora această parte a interfeței, încercați să-l creeze și să vedem cum arată. Pentru a face acest lucru avem nevoie de un fir al containerului. Pentru a crea un container, voi scrie doar o nouă clasă, care este moștenit de la JFrame, astfel încât punctul de intrare de cod ar arata astfel:
clasa de soluții publice statice void main (String [] args) publice noi MyFrame ();
>
>
Creați un dialog de selecție fișier în interiorul constructorului nostru. În continuare, se pune întrebarea: Cum pot afișa o fereastră de selectare a fișierului de utilizator? In acest scop metoda showOpenDialog.
public class MyFrame extinde JFrame MyFrame ()
setBounds (0,0,500,500);
JFileChooser dialog = new JFileChooser ();
dialog.showOpenDialog (aceasta);
setVisible (true);
>
>
Acum suntem capabili de a arăta interfața cu utilizatorul de selectare a fișierului și uite cum arată-te. Este timpul pentru a învăța cum să obțină informații cu privire la alegerea utilizatorului. Pentru a face acest lucru, trebuie să știți dacă utilizatorul selectat un fișier sau un dosar. Avem cu siguranță, au posibilitatea de a se întreba dacă o astfel de posibilitate de utilizator sau nu. În mod implicit, puteți selecta un fișier. Să-l prindem. Nu uitați să conectați bibliotecă pentru a lucra cu fișiere.
import javax.swing * .;
import java.io.File;
public class MyFrame extinde JFrame MyFrame ()
setBounds (0,0,500,500);
JFileChooser dialog = new JFileChooser ();
dialog.showOpenDialog (aceasta);
fișier = dialog.getSelectedFile ();
setVisible (true);
>
>
Pentru a activa sau dezactiva selectarea fișierelor sau directoarelor trebuie utilizat funcția dialog.setFileSelectionMode cu argumente din JFileChooser de clasă. Am arată un exemplu de cod care știe cum să selectați foldere și fișiere.
import javax.swing * .;
import java.io.File;
public class MyFrame extinde JFrame MyFrame ()
setBounds (0,0,500,500);
JFileChooser dialog = new JFileChooser ();
dialog.setFileSelectionMode (JFileChooser.FILES_AND_DIRECTORIES);
dialog.showOpenDialog (aceasta);
fișier = dialog.getSelectedFile ();
setVisible (true);
>
>
Acum cred că ești un pic mine clasa JFileChooser și-ar dori să arate că este complet universală. Puteți personaliza totul în ea. Variind de la posibilitatea de a permite selecta mai multe fișiere sau nu, care se încheie titlul pentru diferite elemente în ea.
import javax.swing * .;
import java.io.File;
public class MyFrame extinde JFrame MyFrame () setBounds (0, 0, 500, 500);
JFileChooser dialog = new JFileChooser ();
dialog.setFileSelectionMode (JFileChooser.FILES_AND_DIRECTORIES);
dialog.setApproveButtonText ( "Select"); // pentru a alege un nume pentru consimțământul unui buton
dialog.setDialogTitle ( „Selectați un fișier de încărcat“); // selectați numele
dialog.setDialogType (JFileChooser.OPEN_DIALOG); // selectați tipul de dialog Deschidere sau Salvare
dialog.setMultiSelectionEnabled (true); // Razregit selecta mai multe fișiere
dialog.showOpenDialog (aceasta);
Fișier [] file = dialog.getSelectedFiles ();
setVisible (true);
>
>
Singurul lucru mai vreau să spun asta despre filtre. Puteți alege ce fișiere sunt afișate pentru utilizator. De exemplu, vă voi arăta un filtru pentru FileChooser, care este capabil să afișeze fișiere cu o anumită extensie.
public class myFileFilter se extinde javax.swing.filechooser.FileFilter String ext, descriere;
publice String getDescription () descrierea retur;
>
myFileFilter (String ext, descriere String) this.ext = ext;
>
// Această metodă poate fi orice fișier de verificare
public boolean accepta (File f) în cazul în care (f = null!) în cazul în care (f.isDirectory) () return true;
>
. Înapoi f.toString () endsWith (ext);
>
return false;
>
>
import javax.swing * .;
import java.io.File;
public class MyFrame extinde JFrame MyFrame () setBounds (0, 0, 500, 500);
JFileChooser dialog = new JFileChooser ();
dialog.setFileFilter (nou myFileFilter ( "txt.", ""));
dialog.showOpenDialog (aceasta);
Fișier [] file = dialog.getSelectedFiles ();
setVisible (true);
>
>