我是Java的新手。我试图动态选择文件位置来保存我的项目的结果(将在我的项目开始时启动)。我使用了几个FileDialog示例,但其中每一个都允许我选择文件而不是文件夹。在Java中选择文件夹目标?
任何人都可以请帮助我的例子(或)链接到一个相同?
我是Java的新手。我试图动态选择文件位置来保存我的项目的结果(将在我的项目开始时启动)。我使用了几个FileDialog示例,但其中每一个都允许我选择文件而不是文件夹。在Java中选择文件夹目标?
任何人都可以请帮助我的例子(或)链接到一个相同?
你可以尝试这样的事情(如下所示:Select a Directory with a 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);
}
}
非常感谢球员...是否正是我需要的..想做的事与对ü点“这个答案有用”的东西。但显然我需要15点声望:( – Sam 2012-04-10 05:35:17
@山姆:通常情况下,答案分值下滴答绿色“非常好”标志的伎俩 – npinti 2012-04-10 08:09:41
什么是用于 – user2084795 2015-04-26 18:54:13
尝试这样的事情
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("select folder");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);
非常感谢..让我开始在这个方向上试验 – Sam 2012-04-10 05:33:30
“chooser.setCurrentDirectory(new java.io.File(”。“));”线。我真的不明白 – cssGEEK 2015-08-06 18:12:10
@cssGEEK可能来不及回答,但它使对话框从当前目录开始。在Unix(至少)中,每个目录都有一个名为'.'的文件夹和一个名为'..'的文件夹。第一个是对同一目录的引用,后者是父目录。在Java中,如果不是以'/'(Unix)或'X:\'(Windows)开头,那么给File的构造函数的字符串是一个相对路径,所以如果你给它“。”它是一个相对于程序当前目录的文件夹。这将使选择器指向程序正在运行的当前目录。 – 2016-07-24 08:13:24
甲骨文的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中可以使用这样的:
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
为有一个外观像Windows。
为他人设置,查看这里: https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html#available
我发现你在this link需要的一个很好的例子。
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 ");
}
}
}
好的,这是一个好的开始。听起来像你做了一些研究。你能否列举你尝试过的一些例子?这将帮助其他人处理你已经知道的事情。 – jmort253 2012-04-10 05:26:31
当然会..给我一点时间 – Sam 2012-04-10 05:36:28