我想知道是否可以从JFileChooser返回文件路径,然后在另一种方法中使用该路径?
我没有运气就尝试了很多不同的事情。这看起来很基本,但我无法弄清楚。
任何人都想解释一下该做什么?
我的代码在这里:
public void run()
{
//runs the program and adds it to the gui grid
fieldObject.fromFile(selectedFile); //this is where i want to load the file to
try {
Solve(fieldObject, 0, 0);
}
catch (SolvedException e) {}
System.out.println("Please select a file in the load menu first");
}
//The FileChooser method
static void FileChooser()
{
JButton Chooser = new JButton();
final JFileChooser fc = new JFileChooser();
fc.setFileFilter(new FileNameExtensionFilter(".txt", "txt"));
fc.setDialogTitle("Choose a txt file");
if (fc.showOpenDialog(Chooser) == JFileChooser.APPROVE_OPTION)
{
File selectedFile = fc.getSelectedFile();
}
else if (fc.showOpenDialog(Chooser) == JFileChooser.CANCEL_OPTION)
{
System.out.println("canceled");
}
return selectedFile;
}
答案 0 :(得分:1)
您使用返回类型FileChooser()
修复了String
方法:
static String FileChooser() {
JButton Chooser = new JButton();
final JFileChooser fc = new JFileChooser();
fc.setFileFilter(new FileNameExtensionFilter(".txt", "txt"));
fc.setDialogTitle("Choose a txt file");
switch (fc.showOpenDialog(Chooser)) {
case JFileChooser.APPROVE_OPTION:
return fc.getSelectedFile().getAbsolutePath();
default:
System.out.println("canceled");
return null;
}
}
您可以将其用作:
String file = FileChooser();
修改强>
您希望将结果保存在第二个按钮单击中使用的字段中:
public class MyClass {
private String path;
public MyClass() {
JButton b = new JButton("Button 1");
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
path = FileChooser();
}
});
JButton b2 = new JButton("Button 2");
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//User 'path' variable here
System.out.println(path);
}
});
}
static String FileChooser() {
JButton Chooser = new JButton();
final JFileChooser fc = new JFileChooser();
fc.setFileFilter(new FileNameExtensionFilter(".txt", "txt"));
fc.setDialogTitle("Choose a txt file");
switch (fc.showOpenDialog(Chooser)) {
case JFileChooser.APPROVE_OPTION:
return fc.getSelectedFile().getAbsolutePath();
default:
System.out.println("canceled");
return null;
}
}
}
<子> P.S。 - 我建议使用命名约定。例如。 - fileChooser()
代替FileChooser()
。