Java Swing JFileChooser
Java Swing教程 - Java Swing JFileChooser
Java Swing教程 - Java Swing MDI...
我们可以创建一个JFileChooser类的对象。它允许用户仅选择文件,仅选择目录,或两者。
我们可以创建一个JFileChooser类的对象。它允许用户仅选择文件,仅选择目录,或两者。...
我们可以从我们调用来显示对话框的方法中检查返回值,它是一个int。
我们可以从我们调用来显示对话框的方法中检查返回值,它是一个int。...
要获取所选文件,请调用getSelectedFile()或getSelectedFiles()方法,它们分别返回File对象和File数组。
要获取所选文件,请调用getSelectedFile()或getSelectedFiles()方法,它们分别返回File对象和File数组。...
默认情况下,JFileChooser开始显示用户的默认目录中的文件。
我们可以在其构造函数中指定初始目录或使用其setCurrentDirectory()方法。
以下编解码器使用默认初始目录创建文件选择器
JFileChooser fileChooser = new JFileChooser();
以下代码创建文件选择器,其初始目录为C:\\ myjava。
JFileChooser fileChooser = new JFileChooser("C:\\myjava");
以下代码创建文件选择器,其初始目录为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,则显示文件。 否则,不显示文件。
以下代码创建并设置文件过滤器,以仅显示目录或具有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类到文件扩展名的文件。
它的构造函数接受文件扩展名及其描述。第二个参数是一个可变长度参数。
在创建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); }
要获取文件类型的关联图标,请使用文件选择器getIcon(java.io.File file)方法,它返回一个Icon对象。 注意,我们可以使用JLabel组件显示一个Icon对象。
更多建议: