Inne działy

Java przykładowe programy

 

Java okno dialogowe otwórz plik

 

W tej lekcji dowiesz się, jak wyświetlić okna dialogowe Open File (otwarcie pliku) w Javie. Odbywa się to za pomocą kontrolki File Choser.

Wróć do widoku projektu. W palecie NetBeans, znajdź element wyboru pliku, który jest pod opcją Swing Windows:

 

 

Przeciągnij kontrolkę Flie Chooser (wyboru pliku) w pobliżu swojej formy, ale nie na nią. Upuścić kontrolkę tuż poniżej formularza, na białym polu. Nie będzie faktycznie widoczna, ale można ją zobaczyć w oknie Inspektora:

 

 

Domyślna nazwa dla kontrolki wyboru pliku jest jFileChooser1 . Kliknij prawym przyciskiem myszy na jFileChooser1 w oknie Inspektora. Z menu, które się pojawi, wybierz opcję Change Variable Name.Gdy pojawi się okno dialogowe, wpisz db jako nazwa:

 

 

Kliknij przycisk OK, aby potwierdzić zmianę. Okno Inspektor powinien wyglądać tak:

 

 

Teraz mamy kontrolkę File Chooser dodaną do projektu.

Wyświetlanie okna dialogowego wyboru pliku jest bardzo proste. Wróć do kodu dla pozycji menu Otwórz, to, w którym było wyświetlane okno komunikatu. Teraz wpisz następujący wiersz:

int wysOkno = db.showOpenDialog(this);

Nasza kontrolka File Chooser nazywa się db. Używamy metodęShowOpenDialog  klasy File Chooser. Pomiędzy nawiasy okrągłe metody ShowOpenDialog wpiszesz następnie nazwę okna, które będzie gospodarzem okna dialogowego. Mamy wpisane słowo this, które oznacza "tę formę".

Metoda ShowOpenDialog zwraca wartość. Wartość ta jest liczbą całkowitą. Wartość informuje, który przycisk został kliknięty w oknie dialogowym: open, cancel, itp. Przechowywujemy tę wartości w zmiennej o nazwie wysOkno. Będziemy używać tej wartości w dalszej części.

Ale ponownie uruchom program. Kliknij Plik > Otwórz w formularzu. Powinieneś zobaczyć okno dialogowe jak poniżej:

 

 

Niestety, jedyną rzeczą, jakie wykonuje okno dialogowe Otwórz to wyświetlenie plików, aby wybrać plik - w rzeczywistości nie otwiera niczego. Jeśli chcesz otworzyć plik, musisz napisać kod samodzielnie. Zrobimy to szybko. Ale na razie, możemy uzyskać nazwę i ścieżkę pliku, który użytkownik wybiera.

Najpierw dodaj poniższą instrukcję if w kodzie, tuż poniżej dwóch innych linii (jedna ze zmienną wysOkno a druga z komentarzem):

 

if(wysOkno == javax.swing.JFileChooser.APPROVE_OPTION){           

        }

Więc używamy Swing klasy o nazwie JFileChooser. Za pomocą tej klasy, można sprawdzić, który przycisk został kliknięty. Po wpisaniu kropki po JFileChooser powinieneś zobaczyć listę w okienku:

 

 

APPROVE_OPTION oznacza przyciski OK i Tak. Musimy sprawdzić zawartość zmiennej  wysOkno, aby sprawdzić czy pasuje do APPROVE_OPTION (czy użytkownik kliknął OK?).

Aby wybrać plik zaznaczony przez użytkownika używamy metody zwanej getSelectedFile. Jednak ta zwraca obiekt pliku, a nie ciąg znaków. Obiekt File jest częścią pakieti IO w Javie. Więc należy dodać następującą linię do instrukcji:

java.io.File plik = db.getSelectedFile();

Plik wybrany przez użytkownika znajdzie się w obiekcie o nazwie plik.

Teraz zróbmy coś pożytecznego z nim (na przykład otwórzymy plik,), trzeba przekonwertować go na ciąg znaków:

 

String nazwa_pliku = plik.toString( );

Ten wiersz po prostu używa metody toString obiektu File. Umieścimy wynik w nowej zmiennej o nazwie nazwa_pliku. Dodaj linię do instrukcji IF.

Aby wyświetlić nazwę pliku, umieść w ostatniej linii swojej instrukcji IF poniższy kod. Zmień ostatni parametr w nawiasach na nazwę zmiennej nazwa_pliku:

javax.swing.JOptionPane.showMessageDialog(FormObjects.this, file_name);

Ponieważ ta linia jest tak długa, można dodać instrukcję import u góry w kodzie, pod jedną linią importu, którą już masz:

import javax.swing.JOptionPane;

Linia kodu z oknem komunikatu może zostać skrócona do postaci:

JOptionPane.showMessageDialog( FormObjects.this, file_name);

Ta wersja jest teraz trochę bardziej czytelna.

Oto jak powinien wyglądać cały kod tej procedury:

 

int wysOkno = db.showOpenDialog(this);
        if(wysOkno == javax.swing.JFileChooser.APPROVE_OPTION){
            java.io.File plik = db.getSelectedFile();
            String nazwa_pliku = plik.toString();
            JOptionPane.showMessageDialog(FormObiekt.this, nazwa_pliku);
        }

Uruchom program i go przetestuj. Kliknij Plik> Otwórz , aby wyświetlić okno dialogowe. Wybierz dowolny plik na komputerze i kliknij Otwórz . Twoje okno z komunikatem powinno wyglądać następująco:

 

 

Zanim dodamy kod powodujący otwarcie wybranego pliku, można zauważyć, że opcja Files of Type (Pliki typu) w oknie dialogowym Open (Otwórz) jest ustawiona na "All files" ("Wszystkie pliki"). Można filtrować pliki na tej liście, tak że użytkownik może otworzyć tylko, powiedzmy, pliki tekstowe, lub po prostu zdjęcia z określonymi rozszerzeniami (JPEG, GIF, PNG).

Aby filtrować listę "Pliki typu", okno dialogowe ma metodę addChoosableFileFilter. Ale trzeba ująć obiekt Filter w nawiasach okrągłych.

Żeby kod nie był niepotrzebnie długi, należy dodać dwie następujące instrukcje importu na początku kodu, tuż pod innymi instrukcjami Import:

import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;

Aby skonfigurować filtr rozszerzenia nazwy pliku, należy utworzyć nowy obiekt FileFilter. Dodaj następującą linię kodu tuż przed pierwszym wierszem kodu (przed instrukcją int wysOkno):

FileFilter ft = new FileNameExtensionFilter("Pliki tekstowe", "txt");

W nawiasach okrągłych metody FileNameExtensionFilter trzeba najpierw umieścić tekst, który pojawi się w liście Pliki typu. Po przecinku należy wpisać nazwę rozszerzenia pliku, który chcesz wyświetlić. Odpowiednie rozszerzenie pliku wpisujemy, ale bez kropki. Należy zwrócić uwagę na cudzysłów powyżej.

Możesz dodać więcej niż jedno rozszerzenie. Wystarczy wpisać przecinek, a następnie rozszerzenie plików, które mają być wyświetlane:

FileNameExtensionFilter("Text Files", "txt", "html");

Gdy masz dodany filtr do obiektu, możesz użyć metodę addChoosableFileFilter w swoim oknie dialogowym:

db.addChoosableFileFilter( ft );

Dodaj następujący wiersz do kodu, tuż poniżej linii FileFilter:

 

FileFilter ft = new FileNameExtensionFilter("Pliki tekstowe", "txt", "html");
        db.addChoosableFileFilter(ft);
        
        int wysOkno = db.showOpenDialog(this);
        if(wysOkno == javax.swing.JFileChooser.APPROVE_OPTION){
            java.io.File plik = db.getSelectedFile();
            String nazwa_pliku = plik.toString();
            JOptionPane.showMessageDialog(FormObiekt.this, nazwa_pliku);
        }

Uruchom program ponownie, i spójrz na swoje okno dialogowe. Kliknij strzałkę na liście rozwijanej:

 

 

Wybierz opcję Text Files. Twoje okno dialogowe będzie wyświetlać tylko pliki z rozszerzeniem .txt.

Jeśli chcesz umieścić inną linię na liście (na przykład do wyświetlania plików HTML), można ustawić inny obiekt FileFilter:

 

        FileFilter ft = new FileNameExtensionFilter("Pliki tekstowe", "txt");
        FileFilter ft1 = new FileNameExtensionFilter("Pliki HTML", "html");
        db.addChoosableFileFilter(ft);
        db.addChoosableFileFilter(ft1);

Gdy program jest uruchomiony, na liście Pliki typu będzie to wyglądać tak:

 

 

Możemy teraz napisać kod, aby faktycznie otworzyć plik. Zrobimy to w następnej części.

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.