java如何调用从不同类创建JFileChooser对话框的方法
我一直在尝试调用另一个类中的方法,该类实例化了一个新的JFileChooser对话框。除了APPROVE_选项代码之外,一切似乎都正常
int userSelection = chooser.showSaveDialog(chooser);
if (userSelection == JFileChooser.APPROVE_OPTION) {
System.out.println("File saved " + chooser.getSelectedFile().getName());
}
似乎不起作用。 下面是包含createFile方法的方法,其中包含JFileChooser
public class TextFileHandler {
private static final String COMMA_DELIMITER = ",";
private static final String NEW_LINE_SEPARATOR = "\n";
private static JFileChooser chooser;
private static int userSelection;
public void createFile(String shiftPattern) {
chooser = new JFileChooser();
chooser.setSelectedFile(new File(shiftPattern + "_export"));
chooser.setDialogTitle("Save shift pattern to CSV format");
FileNameExtensionFilter filter = new FileNameExtensionFilter("CSV", "csv");
chooser.setFileFilter(filter);
int userSelection = chooser.showSaveDialog(chooser);
if (userSelection == JFileChooser.APPROVE_OPTION) {
System.out.println("File saved " + chooser.getSelectedFile().getName());
}
}
下面的文件是从button press操作调用上述方法的类的摘录
else if (action.equals("EXPORT_CSV_BUTTON")) {
TextFileHandler textFile = new TextFileHandler();
String temp = copyPatternController.getShiftPatCode();
messageShow(new Integer(TextFileHandler.getUserSelection()).toString() + " and "
+ (TextFileHandler.getChooser().APPROVE_OPTION)); //for debugging
textFile.createFile(temp);
FileWriter fw = null;
try {
File file = new File(temp + "_export.csv");
fw = new FileWriter(file);
fw.append("testing");
} catch (IOException e) {
System.out.println("Error in writing csv file !!!");
e.printStackTrace();
} finally {
try {
fw.flush();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
“保存”对话框显示正常,但当我按“保存”时,对话框关闭,并且没有创建任何内容。感谢你的任何想法
# 1 楼答案
在EXPOPRT_CSV_按钮中,我缺少一个getSelectedFile()调用
创建文件时没有问题。我也重构了我模糊的代码,谢谢你指出这一点