我一直在尝试在另一个实例化新JFileChooser对话框的类中调用一个方法。除了APPROVE_OPTION代码
之外,一切似乎都能正常工作 int userSelection = chooser.showSaveDialog(chooser);
if (userSelection == JFileChooser.APPROVE_OPTION) {
System.out.println("File saved " + chooser.getSelectedFile().getName());
}
似乎不起作用。 下面的方法包含在
中有JFileChooser的createFile方法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());
}
}
下面的文件是从按钮按下操作调用上述方法的类的摘录。
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();
}
}
}
保存对话框显示正常,但是当我按保存时,对话框关闭,没有创建任何内容。欣赏任何想法
答案 0 :(得分:0)
在EXPOPRT_CSV_BUTTON中,我错过了一个getSelectedFile()调用。
File file = new File(TextFileHandler.getChooser().getSelectedFile().getPath() + ".csv");
创建文件没有问题。我还重构了我的混淆代码,谢谢你指出了这一点。