JFileChooser组件

来自CloudWiki
跳转至: 导航搜索

JFileChooser类允许用户通过弹出的对话框来选择要打开或保存的文件或输入要保存的文件名。

【注意】JFileChooser只是一个针对文件操作的对话框,当然本身也就不会有读文件或存盘的功能!

构造方法

JFileChooser():建立一个JFileChooser对象,默认的文件对话框路径是用户的家目录(Home Directory)。

JFileChooser(File currentDirectory,FileSystemView fsv):建立一个JFileChooser对象,以File所在位置为文件对话框的打开路径并设置文件图标查看方式。

JFileChooser(FileSystemView fsv):建立一个JFileChooser对象,并设置文件图标查看方式。

JFileChooser(String currentDirectoryPath):建立一个JFileChooser对象,并设置文件对话框的打开路径。

JFileChooser(String currentDirectoryPath,FileSystemView fsv): 建立一个JFileChooser对象,并设置文件对话框的打开路径与 文件图标查看方式。

建立一个简单的JFileChooser对话框

使用JFileChooser的showOpenDialog()或showSaveDialog()方法来打开文件对话框,此两个方法在用户按下 按钮或关闭对话框时会返回一个整数值:

  • JFileChooser.CANCEL_OPTION:表示用户按下取消按钮。
  • JFileChooser.APPROVE_OPTION:表示用户按下确定按钮。
  • JFileChooser.ERROR_OPEION:表示有错误产生或是对话框不正常关闭。

利用这个整数值就能判断用户到底在对话框中做了什么操作,并加以处理。

例如,下面程序演示了当用户选择了文件并按下确定键后,使用JFileChooser的getSelectedFile()方法获得选中的文件对象,然后显示文件的名字,按取消后提示用户为选择文件。

public class JFileChooserTest1 {
	public static void main(String[] args) {
		JFileChooser jf = new JFileChooser();
		int result = jf.showOpenDialog(null);
		if (result == JFileChooser.APPROVE_OPTION) {
			File file = jf.getSelectedFile();
			JOptionPane.showMessageDialog(null, "你打开的文件是:" + file.getName());
		} else
			JOptionPane.showMessageDialog(null, "你未打开任何文件", "错误", JOptionPane.ERROR_MESSAGE);
	}
}

添加文件过滤的JFileChooser对话框

可以使用JFileChooser的addChoosableFileFilter()方法或setFileFilter()方法来设置过滤器(该过滤器实现FileFilter抽象类)。

例如,以下代码弹出一个针对用户主目录的文件选择器,其中用户可以选择文本文件或word文件:

public class FileChooserTest {
	public static void main(String[] args) {
		JFileChooser chooser = new JFileChooser();
		//创建过滤器
		FileNameExtensionFilter txtFilter=new FileNameExtensionFilter("文本文件","txt");
		FileNameExtensionFilter docFilter=new FileNameExtensionFilter("word文件","doc","docx");
		//添加过滤器
		chooser.addChoosableFileFilter(docFilter);
		chooser.addChoosableFileFilter(docFilter);
		int returnVal = chooser.showOpenDialog(null);
		if (returnVal == JFileChooser.APPROVE_OPTION) {
			System.out.println("你打开的文件是:" + chooser.getSelectedFile().getName());
		}

	}
}

知识点提炼

1.JOptionPane 是方便地弹出要求用户提供值或向其发出通知的标准对话框。 2.主要用到四种消息提示框方法:

  • showConfirmDialog():确认对话框
  • showInputDialog():输入对话框
  • showMessageDialog():消息对话框
  • showOptionDialog():选择对话框

返回 Java程序设计