Java 使用Swing&;保存文件/打开文件对话框;Netbeans GUI编辑器

Java 使用Swing&;保存文件/打开文件对话框;Netbeans GUI编辑器,java,swing,netbeans,user-interface,Java,Swing,Netbeans,User Interface,我是Java的初学者。我正在使用netbeans 7(.3)IDE的GUI编辑器制作一个简单的文本编辑器。我面临的主要问题是无法保存/打开文件。我已经创建了“保存”按钮。当我删除文件选择器时,它是一个嵌入在java窗口中的普通打开的文件对话框,没有任何功能。我还尝试过在单击save按钮(在源代码视图中)时创建一个新的jFileChooser,但它不起作用 简而言之,我需要一个简单的打开/保存对话框。当按下“保存”按钮时,保存对话框将打开,并在用户选择的任何位置以任何名称和.rtf或.txt扩展名

我是Java的初学者。我正在使用netbeans 7(.3)IDE的GUI编辑器制作一个简单的文本编辑器。我面临的主要问题是无法保存/打开文件。我已经创建了“保存”按钮。当我删除文件选择器时,它是一个嵌入在java窗口中的普通打开的文件对话框,没有任何功能。我还尝试过在单击save按钮(在源代码视图中)时创建一个新的jFileChooser,但它不起作用

简而言之,我需要一个简单的打开/保存对话框。当按下“保存”按钮时,保存对话框将打开,并在用户选择的任何位置以任何名称和.rtf或.txt扩展名保存文件。(注意:是否可以在.docx或.doc中用Java保存文件?
当按下“打开”btn时,它会通过文件选择器以.rtf或.txt格式打开文件(同样,是否可以以Java格式打开.docx或.doc?)

    private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
    JFileChooser saveFile = new JFileChooser();
    if saveFile.showSaveDialog(modalToComponent) == JFileChooser.APPROVE_OPTION {
        File xyz = saveFile.getSelectedFile();
    }
}

代码如下:

我认为您面临三个问题:

  • 了解文件选择器
  • 写入/读取文件
  • 了解扩展名和文件格式
  • 公元1年。是否确实已将文件选择器连接到正确的面板/容器?我会找一个关于这个问题的简单教程,看看它是否有效。这是最好的学习方法——向前迈出小而大的一步。将问题分解成这样的部分有时可能很棘手;)

    公元2年。保存或打开文件后,您应该有写入或读取文件的方法。关于这个问题,还有一些非常简洁的例子,很容易理解这个话题


    公元3年。具有扩展名的文件和文件格式之间存在差异。您可以将任何文件的格式更改为您想要的任何格式,但这不会影响其内容。它可能只是使与此扩展名关联的应用程序无法读取文件。TXT文件很简单——你可以读你写的东西。XLS、DOCX等需要更多的工作,通常框架是解决这些问题的最佳方法

    以任何格式保存都是非常可能的。 检查以下内容-

    第二,保存对话框的工作原理是这样的, 打开文档文件是非常有可能的-

    我创建了一个示例UI,其中显示了“保存和打开文件”对话框。单击“保存”按钮打开“保存”对话框,单击“打开”按钮打开“文件”对话框

    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    
    public class FileChooserEx {
        public static void main(String[] args) {
            Runnable r = new Runnable() {
    
                @Override
                public void run() {
                    new FileChooserEx().createUI();
                }
            };
    
            EventQueue.invokeLater(r);
        }
    
        private void createUI() {
            JFrame frame = new JFrame();
            frame.setLayout(new BorderLayout());
    
            JButton saveBtn = new JButton("Save");
            JButton openBtn = new JButton("Open");
    
            saveBtn.addActionListener(new ActionListener() {
    
                @Override
                public void actionPerformed(ActionEvent arg0) {
                    JFileChooser saveFile = new JFileChooser();
                    saveFile.showSaveDialog(null);
                }
            });
    
            openBtn.addActionListener(new ActionListener() {
    
                @Override
                public void actionPerformed(ActionEvent arg0) {
                    JFileChooser openFile = new JFileChooser();
                    openFile.showOpenDialog(null);
                }
            });
    
            frame.add(new JLabel("File Chooser"), BorderLayout.NORTH);
            frame.add(saveBtn, BorderLayout.CENTER);
            frame.add(openBtn, BorderLayout.SOUTH);
            frame.setTitle("File Chooser");
            frame.pack();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        }
    }
    
    这里有一个例子

    private void doOpenFile() {
        int result = myFileChooser.showOpenDialog(this);
    
        if (result == JFileChooser.APPROVE_OPTION) {
            Path path = myFileChooser.getSelectedFile().toPath();
    
            try {
                String contentString = "";
    
                for (String s : Files.readAllLines(path, StandardCharsets.UTF_8)) {
                    contentString += s;
                }
    
                jText.setText(contentString);
    
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    
    private void doSaveFile() {
        int result = myFileChooser.showSaveDialog(this);
    
        if (result == JFileChooser.APPROVE_OPTION) {
            // We'll be making a mytmp.txt file, write in there, then move it to
            // the selected
            // file. This takes care of clearing that file, should there be
            // content in it.
            File targetFile = myFileChooser.getSelectedFile();
    
            try {
                if (!targetFile.exists()) {
                    targetFile.createNewFile();
                }
    
                FileWriter fw = new FileWriter(targetFile);
    
                fw.write(jText.getText());
                fw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    请发布一些代码我们需要查看一些代码是的,这些代码没有任何帮助,因为它充满了html标记。请使用代码块(看起来像{})在这里发布代码摘录。没有人需要/想要阅读您的所有代码(您的链接甚至不起作用)。为了回答您的实际问题,您可以从java中保存一个具有任何扩展名的文件。由您来确保文件的内容与扩展名匹配。换句话说,如果您编写note.doc文件,该文件应包含1997 Word文档格式的Word文档。我指的是windows操作系统上的digalog box样式,因为此代码使digalog box与Mac上的类似。@Amarnath,使用“保存”按钮保存的是什么文件?如何让
    ActionListener
    打开保存特定文件的对话框?我可以为
    JFileChooser
    指定要打开的默认文件夹吗?提前感谢您的时间,并祝贺您的回答