JFileChooser
介绍 (Introduction)
JFileChooser类是一个为用户提供选择文件的简单机制的组件。
Class 声明 (Class Declaration)
以下是javax.swing.JFileChooser类的声明 -
public class JFileChooser
extends JComponent
implements Accessible
字段 (Field)
以下是javax.swing.JFileChooser类的字段 -
static String ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY - 标识是否使用AcceptAllFileFilter。
protected AccessibleContext accessibleContext
static String ACCESSORY_CHANGED_PROPERTY - 表示正在使用其他附件组件(例如,预览文件)。
static String APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY - 标识批准(是,确定)按钮的助记符更改。
static String APPROVE_BUTTON_TEXT_CHANGED_PROPERTY - 标识批准(是,确定)按钮上文本的更改。
static String APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY - 标识批准(是,确定)按钮的工具提示文本中的更改。
static int APPROVE_OPTION - 如果选择了approve(yes,ok),则返回值。
static String APPROVE_SELECTION - 批准当前选择的指令(与按yes或ok相同)。
static int CANCEL_OPTION - 如果选择取消,则返回值。
static String CANCEL_SELECTION - 取消当前选择的指令。
static String CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY - 标识用户可以选择的预定义文件筛选器列表中的更改。
static String CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY - 显示控制按钮的说明。
static int CUSTOM_DIALOG - 类型值,指示JFileChooser支持开发人员指定的文件操作。
static String DIALOG_TITLE_CHANGED_PROPERTY - 标识对话框标题中的更改。
static String DIALOG_TYPE_CHANGED_PROPERTY - 标识显示的文件类型的更改(仅文件,仅目录,或文件和目录)。
static int DIRECTORIES_ONLY - 仅显示目录的指令。
static String DIRECTORY_CHANGED_PROPERTY - 标识用户的目录更改。
static int ERROR_OPTION - 如果发生错误则返回值。
static String FILE_FILTER_CHANGED_PROPERTY - 标识用户更改了要显示的文件类型。
static String FILE_HIDING_CHANGED_PROPERTY - 标识display-hidden-files属性中的更改。
static String FILE_SELECTION_MODE_CHANGED_PROPERTY - 标识选择类型的更改(单个,多个等)。
static String FILE_SYSTEM_VIEW_CHANGED_PROPERTY - 表示正在使用其他对象查找系统上的可用驱动器。
static String FILE_VIEW_CHANGED_PROPERTY - 表示正在使用其他对象来检索文件信息。
static int FILES_AND_DIRECTORIES - 显示文件和目录的指令。
static int FILES_ONLY - 仅显示文件的指令。
static String MULTI_SELECTION_ENABLED_CHANGED_PROPERTY - 启用多文件选择。
static int OPEN_DIALOG - 类型值,指示JFileChooser支持“打开”文件操作。
static int SAVE_DIALOG - 类型值,指示JFileChooser支持“保存”文件操作。
static String SELECTED_FILE_CHANGED_PROPERTY - 标识用户单文件选择中的更改。
static String SELECTED_FILES_CHANGED_PROPERTY - 标识用户的多文件选择中的更改。
类构造函数 (Class Constructors)
Sr.No. | 构造函数和描述 |
---|---|
1 | JFileChooser() 构造一个指向用户默认目录的JFileChooser。 |
2 | JFileChooser(File currentDirectory) 使用给定的File作为路径构造JFileChooser。 |
3 | JFileChooser(File currentDirectory, FileSystemView fsv) 使用给定的当前目录和FileSystemView构造JFileChooser。 |
4 | JFileChooser(FileSystemView fsv) 使用给定的FileSystemView构造一个JFileChooser。 |
5 | JFileChooser(String currentDirectoryPath) 使用给定路径构造JFileChooser。 |
6 | JFileChooser(String currentDirectoryPath, FileSystemView fsv) 使用给定的当前目录路径和FileSystemView构造JFileChooser。 |
Class Methods
Sr.No. | 方法和描述 |
---|---|
1 | boolean accept(File f) 如果应显示该文件,则返回true。 |
2 | void addActionListener(ActionListener l) 将ActionListener添加到文件选择器。 |
3 | void addChoosableFileFilter(FileFilter filter) 将过滤器添加到用户可选文件过滤器列表中。 |
4 | void approveSelection() 当用户点击“批准”按钮时(由默认情况下标记为“打开”或“保存”),由UI调用。 |
5 | void cancelSelection() 当用户选择“取消”按钮时由UI调用。 |
6 | void changeToParentDirectory() 将要设置的目录更改为当前目录的父目录。 |
7 | protected JDialog createDialog(Component parent) 创建并返回一个新的JDialog包装,以父框架中的父项为中心。 |
8 | void ensureFileIsVisible(File f) 确保指定的文件是可查看的,而不是隐藏的。 |
9 | protected void fireActionPerformed(String command) 通知所有已注册对此事件类型的通知感兴趣的听众。 |
10 | FileFilter getAcceptAllFileFilter() 返回AcceptAll文件筛选器。 |
11 | AccessibleContext getAccessibleContext() 获取与此JFileChooser关联的AccessibleContext。 |
12 | JComponent getAccessory() 返回附件组件。 |
13 | ActionListener[]getActionListeners() 返回在此文件选择器上注册的所有动作侦听器的数组。 |
14 | int getApproveButtonMnemonic() 返回批准按钮的助记符。 |
15 | String getApproveButtonText() 返回FileChooserUI中ApproveButton中使用的文本。 |
16 | String getApproveButtonToolTipText() 返回ApproveButton中使用的工具提示文本。 |
17 | FileFilter[] getChoosableFileFilters() 获取用户可选择文件筛选器的列表。 |
18 | boolean getControlButtonsAreShown() 返回controlButtonsAreShown属性的值。 |
19 | File getCurrentDirectory() 返回当前目录。 |
20 | String getDescription(File f) 返回文件描述。 |
21 | String getDialogTitle() 获取JFileChooser标题栏中的字符串。 |
22 | int getDialogType() 返回此对话框的类型。 |
23 | boolean getDragEnabled() 获取dragEnabled属性的值。 |
24 | FileFilter getFileFilter() 返回当前选定的文件筛选器。 |
25 | int getFileSelectionMode() 返回当前文件选择模式。 |
26 | FileSystemView getFileSystemView() 返回文件系统视图。 |
27 | FileView getFileView() 返回当前文件视图。 |
28 | Icon getIcon(File f) 返回此文件或文件类型的图标,具体取决于系统。 |
29 | String getName(File f) 返回文件名。 |
30 | File getSelectedFile() 返回所选文件。 |
31 | File[] getSelectedFiles() 如果文件选择器设置为允许多个选择,则返回所选文件的列表。 |
32 | String getTypeDescription(File f) 返回文件类型。 |
33 | FileChooserUI getUI() 获取实现此组件的L&F的UI对象。 |
34 | String getUIClassID() 返回一个字符串,该字符串指定呈现此组件的L&F类的名称。 |
35 | boolean isAcceptAllFileFilterUsed() 返回是否使用AcceptAll FileFilter。 |
36 | boolean isDirectorySelectionEnabled() 方便调用,根据当前文件选择模式确定目录是否可选。 |
37 | boolean isFileHidingEnabled() 如果文件选择器中未显示隐藏文件,则返回true;否则返回true。 否则,返回false。 |
38 | boolean isFileSelectionEnabled() 方便调用,根据当前文件选择模式确定文件是否可选。 |
39 | boolean isMultiSelectionEnabled() 如果可以选择多个文件,则返回true。 |
40 | boolean isTraversable(File f) 如果可以访问文件(目录),则返回true。 |
41 | protected String paramString() 返回此JFileChooser的字符串表示形式。 |
42 | void removeActionListener(ActionListener l) 从文件选择器中删除ActionListener。 |
43 | boolean removeChoosableFileFilter(FileFilter f) 从用户可选择文件筛选器列表中删除筛选器。 |
44 | void rescanCurrentDirectory() 告诉UI从当前目录重新扫描其文件列表。 |
45 | void resetChoosableFileFilters() 将可选择文件筛选器列表重置为其启动状态。 |
46 | void setAcceptAllFileFilterUsed(boolean b) 确定AcceptAll FileFilter是否在可选择的筛选器列表中用作可用选项。 |
47 | void setAccessory(JComponent newAccessory) 设置附件组件。 |
48 | void setApproveButtonMnemonic(char mnemonic) 使用字符设置批准按钮的助记符。 |
49 | void setApproveButtonMnemonic(int mnemonic) 使用数字键代码设置批准按钮的助记符。 |
50 | void setApproveButtonText(String approveButtonText) 设置FileChooserUI中ApproveButton中使用的文本。 |
51 | void setApproveButtonToolTipText(String toolTipText) 设置ApproveButton中使用的工具提示文本。 |
52 | void setControlButtonsAreShown(boolean b) 设置指示是否在文件选择器中显示批准和取消按钮的属性。 |
53 | void setCurrentDirectory(File dir) 设置当前目录。 |
54 | void setDialogTitle(String dialogTitle) 设置JFileChooser窗口标题栏中的字符串。 |
55 | void setDialogType(int dialogType) 设置此对话框的类型。 |
56 | void setDragEnabled(boolean b) 设置dragEnabled属性,该属性必须为true才能在此组件上启用自动拖动处理(拖放的第一部分)。 |
57 | void setFileFilter(FileFilter filter) 设置当前文件筛选器。 |
58 | void setFileHidingEnabled(boolean b) 设置文件隐藏或关闭。 |
59 | void setFileSelectionMode(int mode) 设置JFileChooser以允许用户只选择文件,只选择目录,或选择文件和目录。 |
60 | void setFileSystemView(FileSystemView fsv) 设置JFileChooser用于访问和创建文件系统资源的文件系统视图,例如查找软盘驱动器和获取根驱动器列表。 |
61 | void setFileView(FileView fileView) 设置用于检索UI信息的文件视图,例如表示文件的图标或文件的类型描述。 |
62 | void setMultiSelectionEnabled(boolean b) 设置文件选择器以允许多个文件选择。 |
63 | void setSelectedFile(File file) 设置所选文件。 |
64 | void setSelectedFiles(File[] selectedFiles) 如果文件选择器设置为允许多个选择,则设置所选文件的列表。 |
65 | protected void setup(FileSystemView view) 执行常见的构造函数初始化和设置。 |
66 | int showDialog(Component parent, String approveButtonText) 使用自定义批准按钮弹出自定义文件选择器对话框。 |
67 | int showOpenDialog(Component parent) 弹出“打开文件”文件选择器对话框。 |
68 | int showSaveDialog(Component parent) 弹出“保存文件”文件选择器对话框。 |
69 | void updateUI() 将UI属性重置为当前外观的值。 |
方法继承 (Methods Inherited)
该类继承以下类中的方法 -
- javax.swing.JComponent
- java.awt.Container
- java.awt.Component
- java.lang.Object
JFileChooser示例
使用您选择的任何编辑器创建以下Java程序,例如D:/ 》 SWING 》 com 》 xnip 》 gui 》
SwingControlDemo.java
package cn.xnip.gui;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingControlDemo {
private JFrame mainFrame;
private JLabel headerLabel;
private JLabel statusLabel;
private JPanel controlPanel;
public SwingControlDemo(){
prepareGUI();
}
public static void main(String[] args){
SwingControlDemo swingControlDemo = new SwingControlDemo();
swingControlDemo.showFileChooserDemo();
}
private void prepareGUI(){
mainFrame = new JFrame("Java Swing Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new JLabel("", JLabel.CENTER);
statusLabel = new JLabel("",JLabel.CENTER);
statusLabel.setSize(350,100);
controlPanel = new JPanel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showFileChooserDemo(){
headerLabel.setText("Control in action: JFileChooser");
final JFileChooser fileDialog = new JFileChooser();
JButton showFileDialogButton = new JButton("Open File");
showFileDialogButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int returnVal = fileDialog.showOpenDialog(mainFrame);
if (returnVal == JFileChooser.APPROVE_OPTION) {
java.io.File file = fileDialog.getSelectedFile();
statusLabel.setText("File Selected :" + file.getName());
} else {
statusLabel.setText("Open command cancelled by user." );
}
}
});
controlPanel.add(showFileDialogButton);
mainFrame.setVisible(true);
}
}
使用命令提示符编译程序。 转到D:/ 》 SWING并键入以下命令。
D:\SWING>javac com\xnip\gui\SwingControlDemo.java
如果没有错误发生,则表示编译成功。 使用以下命令运行该程序。
D:\SWING>java cn.xnip.gui.SwingControlDemo
验证以下输出。