JFileChooser设置窗体打开路径

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

转自:http://blog.csdn.net/yangfeisc/article/details/40191025

JFileChooser作为Java中Swing的文件选取器,是放置在对话框中的轻量组件。通过该组件能够打开文件选取对话框,并记录所选文件,因此在软件开发过程中使用率很高。但是在使用过程中有些设置还是需要引起使用者的重视,尤其是如何设置文件选取对话框的路径。

最近在使用该组件进行软件开发过程中,但是如何合理的设置文件选取对话框默认打开路径还是给我造成了小小的困扰,最后通过查资料终于按照预期实现了相应的功能。今天就总结一下使用JFileChooser组件设置窗体默认打开路径的问题。

1、默认的打开路径为“我的文档”

如果仅使用JFileChooser fileChooser = new JFileChooser()定义一个文件选取器时,而且不进行其他设置,则文件选取器的默认打开目录就是“我的文档”。

2、修改默认打开路径

  如果开发人员想设置文件选取器的默认目录,则可以使用JFileChooser fileChooser = new JFileChooser(new File("想设置的默认目录路径"))

软件使用者在使用软件过程中,为了降低重复打开文件的工作量,一般希望软件能够“记忆”打开过的文件路径,这就要求开发人员在设置JFileChooser是能够根据要求进行默认路径的设置,这种“记忆”可以分为以下两种

1、“临时性”设置文件选取器默认路径为上次打开路径

所谓的“临时性”指的是在软件在一次运行的整个过程中,文件选取器的默认打开目录将会是上次的打开的路径。这种方式的设置如下:

JFileChooser fileChooser = new JFileChooser();

fileChooser.setCurrentDirectory(fileChooser.getSelectedFile());

使用这种方式需要注意:首先,这个fileChooser必须定义为全局变量,而且只能被创建一次;其次,该软件重启后文件选取器的第一次默认路径还是“我的文档”,因为软件重启前一次打开路径为null,所以JFileChooser将null作为前一次的路径,即“我的文档”。

2、永久性设置文件选取器默认路径为上次打开路径

所谓的“永久性”指的是软件在关闭重启后文件选取器的默认路径仍然是关闭前的路径。这种设置可以通过将每次打开的路径写入注册表实现,然后在启动JFileChooser之前,将路径从注册表中读取出来作为参数来初始化JFileChooser默认路径。具体设置如下所示:

Preferences pref = Preferences.userRoot().node("/com/registerFile");
String lastPath = pref.get("lastPath", "");
JFileChooser chooser = null;
if (!lastPath.equals(""))
chooser = new JFileChooser(lastPath);
else
chooser = new JFileChooser();
chooser.showOpenDialog(this);

好的,以下是您需要的Java程序(TextFileViewer): ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; public class TextFileViewer extends JFrame implements ActionListener { private JTextArea textArea; private JTextField filePathField; public TextFileViewer() { super("文本文件阅读器"); // 创建JTextArea对象并放置在JScrollPane中 textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); // 创建标签、文本框和按钮 JLabel filePathLabel = new JLabel("文件路径:"); filePathField = new JTextField(20); filePathField.setEditable(false); JButton openButton = new JButton("打开文件"); openButton.addActionListener(this); // 创建底部Panel并加入组件 JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); bottomPanel.add(filePathLabel); bottomPanel.add(filePathField); bottomPanel.add(openButton); // 将JScrollPane和底部Panel加入到窗体中 getContentPane().add(scrollPane, BorderLayout.CENTER); getContentPane().add(bottomPanel, BorderLayout.SOUTH); // 设置窗体大小、位置和可见性 setSize(600, 400); setLocationRelativeTo(null); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("打开文件")) { JFileChooser fileChooser = new JFileChooser(); int result = fileChooser.showOpenDialog(this); if (result == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); filePathField.setText(selectedFile.getAbsolutePath()); try { BufferedReader reader = new BufferedReader(new FileReader(selectedFile)); String line; textArea.setText(""); while ((line = reader.readLine()) != null) { textArea.append(line + "\n"); } reader.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(this, "文件读取错误!"); } } } } public static void main(String[] args) { TextFileViewer viewer = new TextFileViewer(); viewer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } ``` 程序的实现过程如下: 1. 首先,我们创建了一个 `JTextArea` 对象,然后将其放置在一个 `JScrollPane` 中,以便于用户可以滚动查看文本内容。 2. 接着,我们创建了一个标签、一个文本框和一个按钮,并将它们放置在一个底部的 `JPanel` 中,使用 `FlowLayout` 布局管理器以便于它们可以排列在一行中。 3. 然后,我们将 `JScrollPane` 和底部的 `JPanel` 加入到窗体中,使用 `BorderLayout` 布局管理器,以便于它们可以占据窗体的中间和底部区域。 4. 在按钮的 `actionPerformed` 方法中,我们创建了一个 `JFileChooser` 对话框,让用户选择要打开的文件。如果用户选择了一个文件,则读取这个文件的内容,并将其显示在 `JTextArea` 中。 5. 最后,我们创建了一个 `main` 方法来启动程序,并设置窗体的关闭操作为 `EXIT_ON_CLOSE`。 希望这个程序能够帮助您解决问题!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值