虽然Java图形界面没有流行,但是文件对话框可能还有点用。
代码改编自《Java核心技术卷1》第十版,在Java 8下运行正常。
import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import java.io.*; public class Main{ public static void main(String[] args) { JFileChooser chooser = new JFileChooser(); System.out.println("尝试打开文件:"); chooser.setDialogTitle("选择打开文件"); //使用当前的工作目录 chooser.setCurrentDirectory(new File(".")); //设置过滤器 FileNameExtensionFilter filter = new FileNameExtensionFilter("Text files", "txt"); chooser.setFileFilter(filter); //不允许多选 chooser.setMultiSelectionEnabled(false); //选择的默认文件名 chooser.setSelectedFile(new File("UTF.txt")) ; int result = chooser.showOpenDialog(null); if (result == JFileChooser.APPROVE_OPTION) { System.out.println("路径:" + chooser.getSelectedFile().getPath()); System.out.println("绝对路径:" + chooser.getSelectedFile().getAbsolutePath()); System.out.println("文件名:" + chooser.getSelectedFile().getName()); System.out.println("目录:" + chooser.getSelectedFile().getParent()); } System.out.println("\n尝试打开目录:"); chooser.setDialogTitle("选择目录"); //设置只能选择目录(默认只能选择文件) chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); result = chooser.showOpenDialog(null); if (result == JFileChooser.APPROVE_OPTION) { System.out.println("路径:" + chooser.getSelectedFile().getPath()); } else if (result == JFileChooser.CANCEL_OPTION) { System.out.println("已经取消。"); } else if (result == JFileChooser.ERROR_OPTION) { System.out.println("发生错误。"); } System.out.println("\n尝试另存为:"); chooser.setDialogTitle("另存文件"); //设置只能选择文件 chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); result = chooser.showSaveDialog(null); if (result == JFileChooser.APPROVE_OPTION) { System.out.println("绝对路径:" + chooser.getSelectedFile().getAbsolutePath()); } } }
原文:https://www.cnblogs.com/cghuang/p/14466022.html