在Java中选择文件夹目标?
我是Java的新手。 我正在尝试动态选择文件位置以保存项目的结果(在项目的最开始时启动)。 我使用了一些FileDialog示例,但是每个示例都允许我选择一个文件而不是文件夹。
任何人都可以帮我一个示例(或)链接到同一个?
您可以尝试这样的事情(如下所示: 使用JFileChooser选择目录 ):
import javax.swing.*; import java.awt.event.*; import java.awt.*; import java.util.*; public class DemoJFileChooser extends JPanel implements ActionListener { JButton go; JFileChooser chooser; String choosertitle; public DemoJFileChooser() { go = new JButton("Do it"); go.addActionListener(this); add(go); } public void actionPerformed(ActionEvent e) { chooser = new JFileChooser(); chooser.setCurrentDirectory(new java.io.File(".")); chooser.setDialogTitle(choosertitle); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); // // disable the "All files" option. // chooser.setAcceptAllFileFilterUsed(false); // if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory()); System.out.println("getSelectedFile() : " + chooser.getSelectedFile()); } else { System.out.println("No Selection "); } } public Dimension getPreferredSize(){ return new Dimension(200, 200); } public static void main(String s[]) { JFrame frame = new JFrame(""); DemoJFileChooser panel = new DemoJFileChooser(); frame.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); frame.getContentPane().add(panel,"Center"); frame.setSize(panel.getPreferredSize()); frame.setVisible(true); } }
Oracles Java教程文件选择器: http : //docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html
注意getSelectedFile()
返回所选文件夹,尽管名称。 getCurrentDirectory()
返回所选文件夹的目录。
import javax.swing.*; public class Example { public static void main(String[] args) { JFileChooser f = new JFileChooser(); f.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); f.showSaveDialog(null); System.out.println(f.getCurrentDirectory()); System.out.println(f.getSelectedFile()); } }
尝试这样的事情
JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new java.io.File(".")); chooser.setDialogTitle("select folder"); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setAcceptAllFileFilterUsed(false);
与JFileChooser一起使用可以使用:
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
有一个像Windows一样的外观和感觉。
对于其他设置,请在此处查看: https : //docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html#available
我在这个链接中找到了你需要的一个很好的例子。
import javax.swing.JFileChooser; public class Main { public static void main(String s[]) { JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new java.io.File(".")); chooser.setDialogTitle("choosertitle"); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setAcceptAllFileFilterUsed(false); if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory()); System.out.println("getSelectedFile() : " + chooser.getSelectedFile()); } else { System.out.println("No Selection "); } } }