有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    在EXPOPRT_CSV_按钮中,我缺少一个getSelectedFile()调用

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

    创建文件时没有问题。我也重构了我模糊的代码,谢谢你指出这一点