概述
本文将介绍如何使用 Java Swing 实现文件夹选择功能。通过 JFileChooser
组件,可以轻松地让用户选择文件夹,并获取所选文件夹的路径。
示例代码
完整示例代码
java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class DemoJFileChooser extends JPanel implements ActionListener {
private JButton go;
private JFileChooser chooser;
private String choosertitle;
public DemoJFileChooser() {
go = new JButton("选择文件夹");
go.addActionListener(this);
add(go);
}
@Override
public void actionPerformed(ActionEvent e) {
chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle(choosertitle);
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
// 禁用“所有文件”选项
chooser.setAcceptAllFileFilterUsed(false);
if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
System.out.println("当前目录: " + chooser.getCurrentDirectory());
System.out.println("选择的文件夹: " + chooser.getSelectedFile());
} else {
System.out.println("未选择文件夹");
}
}
@Override
public Dimension getPreferredSize() {
return new Dimension(200, 200);
}
public static void main(String[] args) {
JFrame frame = new JFrame("选择文件夹示例");
DemoJFileChooser panel = new DemoJFileChooser();
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.getContentPane().add(panel, "Center");
frame.setSize(panel.getPreferredSize());
frame.setVisible(true);
}
}
代码说明
导入必要的包:
- 导入
javax.swing.*
和java.awt.event.*
包,用于创建图形用户界面和处理事件。
- 导入
创建
DemoJFileChooser
类:- 继承自
JPanel
并实现ActionListener
接口,以便处理按钮点击事件。
- 继承自
初始化组件:
- 创建一个按钮
go
,并为其添加点击事件监听器。 - 在构造函数中初始化按钮并将其添加到面板中。
- 创建一个按钮
处理按钮点击事件:
- 创建
JFileChooser
实例,设置其初始目录、对话框标题和文件选择模式为仅选择文件夹。 - 禁用“所有文件”选项。
- 显示文件选择对话框,并根据用户选择输出相应的信息。
- 创建
主方法:
- 创建并配置
JFrame
,添加DemoJFileChooser
面板,并设置窗口关闭操作。
- 创建并配置