SWING - JFileChooser 类

简介

JFileChooser 类是一个组件,它为用户选择文件提供了一种简单的机制。


类声明

以下是 javax.swing.JFileChooser 类的声明 −

public class JFileChooser
   extends JComponent
      implements Accessible

字段

以下是 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 − 标识批准(yes, ok)按钮的助记符更改。

  • static String APPROVE_BUTTON_TEXT_CHANGED_PROPERTY − 标识批准(yes, ok) 按钮上的文本更改。

  • static String APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY − 标识批准(yes, ok) 按钮的工具提示文本中的更改。

  • static int APPROVE_OPTION − 如果选择了批准(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 支持"Open"文件操作。

  • static int SAVE_DIALOG − 类型值指示 JFileChooser 支持"Save"文件操作。

  • static String SELECTED_FILE_CHANGED_PROPERTY − 标识用户的单个文件选择中的更改。

  • static String SELECTED_FILES_CHANGED_PROPERTY − 标识用户的多文件选择中的更改。


类构造函数

序号 构造函数 & 描述
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。


类方法

序号 方法 & 描述
1

boolean accept(File f)

如果应该显示文件,则返回 true。

2

void addActionListener(ActionListener l)

将 ActionListener 添加到文件选择器。

3

void addChoosableFileFilter(FileFilter filter)

将过滤器添加到用户可选择的文件过滤器列表中。

4

void approveSelection()

当用户点击"批准"按钮(默认标记为"Open"打开或"Save"保存)时由 UI 调用。

5

void cancelSelection()

当用户选择"Cancel"取消按钮时由 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; 否则,返回 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)

弹出"Open File"打开文件选择器对话框。

68

int showSaveDialog(Component parent)

弹出"Save File"保存文件选择器对话框。

69

void updateUI()

将 UI 属性重置为当前外观的值。


继承的方法

这个类继承了以下类的方法 −

  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JFileChooser 示例

D:/ > SWING > com > tutorialspoint > gui > 中使用您选择的任何编辑器创建以下 Java 程序

SwingControlDemo.java

package com.tutorialspoint.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\tutorialspoint\gui\SwingControlDemo.java

如果没有报错,说明编译成功。 使用以下命令运行程序。

D:\SWING>java com.tutorialspoint.gui.SwingControlDemo

验证以下输出。

Swing JFileChooser

❮ SWING 控件