JFileChooser

优质
小牛编辑
150浏览
2023-12-01

介绍 (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

验证以下输出。

Swing JFileChooser