Java Swing教程 - Java Swing MDI...
我們可以創(chuàng)建一個JFileChooser類的對象。它允許用戶僅選擇文件,僅選擇目錄,或兩者。
我們可以創(chuàng)建一個JFileChooser類的對象。它允許用戶僅選擇文件,僅選擇目錄,或兩者。...
我們可以從我們調用來顯示對話框的方法中檢查返回值,它是一個int。
我們可以從我們調用來顯示對話框的方法中檢查返回值,它是一個int。...
要獲取所選文件,請調用getSelectedFile()或getSelectedFiles()方法,它們分別返回File對象和File數(shù)組。
要獲取所選文件,請調用getSelectedFile()或getSelectedFiles()方法,它們分別返回File對象和File數(shù)組。...
默認情況下,JFileChooser開始顯示用戶的默認目錄中的文件。
我們可以在其構造函數(shù)中指定初始目錄或使用其setCurrentDirectory()方法。
以下編解碼器使用默認初始目錄創(chuàng)建文件選擇器
JFileChooser fileChooser = new JFileChooser();
以下代碼創(chuàng)建文件選擇器,其初始目錄為C:\\ myjava。
JFileChooser fileChooser = new JFileChooser("C:\\myjava");
以下代碼創(chuàng)建文件選擇器,其初始目錄為C:\\ myjava。...
選擇文件和目錄
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
選擇文件和目錄...
fileChooser.setMultiSelectionEnabled(true);
以下代碼顯示如何顯示打開的文件選擇器對話框,并檢查用戶是否選擇了文件。如果用戶進行選擇,請在標準輸出上打印文件路徑。
// Display an open file chooser int returnValue = fileChooser.showOpenDialog(null);
import java.io.File; //from w w w .j a va 2 s.co m import javax.swing.JFileChooser; public class Main { public static void main(String[] args) { // Display an open file chooser JFileChooser fileChooser = new JFileChooser(); int returnValue = fileChooser.showOpenDialog(null); if (returnValue == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); System.out.println("we selected: " + selectedFile); } } }
以下代碼顯示如何顯示打開的文件選擇器對話框,并檢查用戶是否選擇了文件。如果用戶進行選擇,請在標準輸出上打印文件路徑。...
更改對話框的標題
fileChooser.setDialogTitle("Open a picture file");
更改對話框的標題...
fileChooser.setApproveButtonText("Open File");
使用打開文件選擇器附加為其標題并批準按鈕的文本
int returnValue = fileChooser.showDialog(null, "Attach"); if (returnValue == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); System.out.println("Attaching file: " + selectedFile); }
設置批準按鈕的文本不會更改方法的返回值。
JFileChooser可以在對話框中顯示文件之前使用文件過濾器,該文件過濾器是應用的一組條件。
文件過濾器是FileFilter類的一個對象,它位于javax.swing.filechooser包中。
FileFilter類是一個抽象類。 我們需要重寫accept()和getDescription()方法。
當文件選擇器要顯示文件時,使用文件引用調用accept()方法。 如果accept()方法返回true,則顯示文件。 否則,不顯示文件。
以下代碼創(chuàng)建并設置文件過濾器,以僅顯示目錄或具有doc擴展名的文件。
import java.io.File; //from ww w. ja v a 2 s .com import javax.swing.JFileChooser; import javax.swing.filechooser.FileFilter; public class Main { public static void main(String[] args) { // Create a file filter to show only a directory or .doc files FileFilter filter = new FileFilter() { @Override public boolean accept(File f) { if (f.isDirectory()) { return true; } String fileName = f.getName().toLowerCase(); if (fileName.endsWith(".doc")) { return true; } return false; // Reject any other files } @Override public String getDescription() { return "Word Document"; } }; // Set the file filter JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileFilter(filter); int returnValue = fileChooser.showDialog(null, "Attach"); if (returnValue == JFileChooser.APPROVE_OPTION) { // Process the file } } }
我們可以使用FileNameExtensionFilter類繼承自FileFilter類到文件擴展名的文件。
它的構造函數(shù)接受文件擴展名及其描述。第二個參數(shù)是一個可變長度參數(shù)。
在創(chuàng)建FileNameExtensionFilter類的對象后,我們需要調用文件選擇器的addChoosableFileFilter()方法來設置過濾器。
下面的代碼添加“java"和“jav"作為文件擴展名過濾器。
import javax.swing.JFileChooser; import javax.swing.filechooser.FileNameExtensionFilter; /*from w w w.j av a2 s.c om*/ public class Main { public static void main(String[] args) { FileNameExtensionFilter extFilter = new FileNameExtensionFilter( "Java Source File", "java", "jav"); // Set the file filter JFileChooser fileChooser = new JFileChooser(); fileChooser.addChoosableFileFilter(extFilter); int returnValue = fileChooser.showDialog(null, "Attach"); if (returnValue == JFileChooser.APPROVE_OPTION) { // Process the file } } }
要禁用“接受所有文件過濾器"
fileChooser.setAcceptAllFileFilterUsed(false);
要檢查是否啟用“接受所有文件過濾器" 請使用isAcceptAllFileFilterUsed()方法,如果文件選擇器正在使用此過濾器,則返回true。
使用getAcceptAllFileFilter()方法獲取“接受所有文件過濾器"的引用。
以下代碼設置“接受所有文件過濾器"(如果尚未設置)。
if (!fileChooser.isAcceptAllFileFilterUsed()) { fileChooser.setAcceptAllFileFilterUsed(true); }
要獲取文件類型的關聯(lián)圖標,請使用文件選擇器getIcon(java.io.File file)方法,它返回一個Icon對象。 注意,我們可以使用JLabel組件顯示一個Icon對象。
更多建議: