0

我正在用java编写一个程序,就像记事本一样。所以我有保存下来,它的工作原理,这里是例如代码

BufferedWriter writer = null;
                    try {
                        writer = new BufferedWriter(new FileWriter(link.getText()));
                        writer.write(display.getText());
                    } catch (Exception e1) {
                        e1.printStackTrace();
                    } finally {
                        try {
                            if (null != writer) {
                                writer.close();
                            }
                        } catch (Exception e1) {
                            e1.printStackTrace();
                        }
                    }

无论如何,它的作用是,您无法在代码中看到它,但它会生成一个具有 JTextField 和 JButton 的 JFrame,您所做的就是将链接放在 JTextField 中(例如:C:\Users\Noah\Desktop\ text.txt) 并在您按保存时保存。但我想用 JFileChooser 来做到这一点。有人能帮我吗?

编辑:

解决方案:

JFileChooser fc = new JFileChooser("C:\\Users");
fc.showSaveDialog(frame); // frame is the JFrame (window)
BufferedWriter writer = null;
                try {
                    writer = new BufferedWriter(new FileWriter(fc.getSelectedFile().getPath()));
                    writer.write(display.getText());
                } catch (Exception e1) {
                    e1.printStackTrace();
                } finally {
                    try {
                        if (null != writer) {
                            writer.close();
                        }
                    } catch (Exception e1) {
                        e1.printStackTrace();
                    }
                }

在我发布这个之后我想出了这个办法

4

1 回答 1

1

您在 Google 中有很多示例,无论如何这里是我保存 xml 文件的一些代码片段:

    public void SaveMe(){

    //Configure fileChooser
    JFileChooser fc = new JFileChooser(lastOpenDir); // after 1st save store path to "lastOpenDir"

    fc.setFileSelectionMode(JFileChooser.FILES_ONLY);

    fc.setDialogTitle("Save only XML");


    fc.removeChoosableFileFilter(fc.getFileFilter());  //remove the default file filter

    FileFilter filter = new FileNameExtensionFilter("XML file", "xml");

    fc.addChoosableFileFilter(filter); //add XML file filter

    //show dialog
    int returnVal = fc.showSaveDialog(appFrame);

    if(returnVal == JFileChooser.APPROVE_OPTION){

        File selectedDir = fc.getSelectedFile();

        lastOpenDir=fc.getSelectedFile().getParent();

        lastOpenFile = fc.getSelectedFile().getName();

        if(selectedDir.isFile()){

            String errorString = selectedDir.getPath()+" already exists.\nDo you want to replace it?"; 

            Object[] options = {"Yes", "No"};

            int n = JOptionPane.
                    showOptionDialog(
                            null,
                            errorString,
                            "Override",
                            JOptionPane.YES_NO_OPTION,
                            JOptionPane.QUESTION_MESSAGE,
                            null,
                            options,
                            options[0]
                            );

            if (n == JOptionPane.YES_OPTION){

                if(fc.getFileFilter().getDescription().equals("XML file")){

                    // save selectedDir.getPath() 


                }
            } 
于 2013-09-29T18:53:56.933 回答