如何调用从其他类创建JFileChooser对话框的方法

时间:2016-06-15 15:25:12

标签: java jfilechooser

我一直在尝试在另一个实例化新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();
                }
            }
        }

保存对话框显示正常,但是当我按保存时,对话框关闭,没有创建任何内容。欣赏任何想法

1 个答案:

答案 0 :(得分:0)

在EXPOPRT_CSV_BUTTON中,我错过了一个getSelectedFile()调用。

File file = new File(TextFileHandler.getChooser().getSelectedFile().getPath() + ".csv");

创建文件没有问题。我还重构了我的混淆代码,谢谢你指出了这一点。