Swing015——JFileChooser:文件选择器

一、API简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、实例

package component;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.filechooser.FileNameExtensionFilter;

public class TestJFileChooser {
	public static void main(String[] args) {
		// 1、创建一个顶层容器
		final JFrame jFrame = new JFrame("JLabel标签");
		// 设置大小
		jFrame.setSize(600, 400);
		// 设置位置居中(在设置大小之后)
		jFrame.setLocationRelativeTo(null);
		// 设置关闭时推出虚拟机JVM
		jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// 2、创建一个中间容器
		JPanel jPanel = new JPanel();

		// 创建按钮
		JButton jButtonOpen = new JButton("打开");

		jButtonOpen.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// 显示打开文件选择器
				showFileOpen(jFrame);
			}

		});

		jPanel.add(jButtonOpen);

		// 创建按钮
		JButton jButtonSave = new JButton("保存");

		jButtonSave.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// 保存文件
				showFileSave(jFrame);
			}

		});

		jPanel.add(jButtonSave);

		// 将中间容器添加到顶层容器中
		jFrame.setContentPane(jPanel);
		// 显示窗口
		jFrame.setVisible(true);
	}

	// 打开选择文件
	private static void showFileOpen(Component parent) {
		// 创建文件选择器
		JFileChooser fileChooser = new JFileChooser();
		// 设置当前文件夹位置
		fileChooser.setCurrentDirectory(new File("C:\\Users\\Administrator\\Desktop"));// 当前文件夹
		// 设置选择模式(选择文件和它的目录)
		fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
		// 是否多选
		fileChooser.setMultiSelectionEnabled(true);
		// 添加过滤器(文件名过滤)
		fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("压缩文件(*.zip,*.rar)", "zip", "rar"));

		// 接收结果
		int result = fileChooser.showOpenDialog(parent);// 判断是否选择了文件
		if (result == JFileChooser.APPROVE_OPTION) {
			// 取得文件
			File[] filse = fileChooser.getSelectedFiles();
			for (File file : filse) {
				System.out.println(file.getName());
			}
		}

	}

	// 显示文件保存
	static void showFileSave(Component parent) {
		// 创建
		JFileChooser chooser = new JFileChooser(new File("."));
		// 设置默认名称
		chooser.setSelectedFile(new File("good.txt"));
		// 显示
		int result = chooser.showSaveDialog(parent);
		// 判断是否点了确定
		if (result == JFileChooser.APPROVE_OPTION) {
			// 取得文件(从chooser中取得文件所存放的路径)
			File file = chooser.getSelectedFile();
			// 打印绝对路径
			System.out.println(file.getAbsolutePath());
		}
	}

}

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用JFileChooser组件来实现此功能。首先,创建一个文本输入框和一个按钮,然后将它们添加到您的窗口上。 接下来,您需要为按钮添加一个ActionListener。在ActionListener中,创建一个JFileChooser并打开文件选择器,让用户选择要保存的文件。一旦用户选择文件,您可以使用JFileChooser.getSelectedFile()方法获取选择文件,并将其路径显示在文本输入框中。 下面是一个示例代码: ``` import java.awt.*; import java.awt.event.*; import javax.swing.*; public class FileSaveDialog extends JFrame { private JTextField filePathField; public FileSaveDialog() { super("文件保存窗口"); setDefaultCloseOperation(DISPOSE_ON_CLOSE); // 创建文本输入框和按钮 filePathField = new JTextField(20); JButton selectFileBtn = new JButton("选择文件"); // 为按钮添加ActionListener selectFileBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 创建文件选择器 JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); int result = fileChooser.showSaveDialog(FileSaveDialog.this); // 处理用户选择文件 if (result == JFileChooser.APPROVE_OPTION) { String filePath = fileChooser.getSelectedFile().getAbsolutePath(); filePathField.setText(filePath); } } }); // 将文本输入框和按钮添加到窗口中 JPanel panel = new JPanel(new FlowLayout()); panel.add(filePathField); panel.add(selectFileBtn); getContentPane().add(panel); pack(); setLocationRelativeTo(null); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new FileSaveDialog().setVisible(true); } }); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值