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对象。

免费 AI IDE


更多建议: