Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JFileChooser打开文件_Java_File_Swing_Jfilechooser - Fatal编程技术网

Java 使用JFileChooser打开文件

Java 使用JFileChooser打开文件,java,file,swing,jfilechooser,Java,File,Swing,Jfilechooser,作为一个小项目,我认为制作一个文本编辑器会很酷。我目前正忙于打开文件。这是我打开文件的代码(e是一个ActionEvent,open是一个JMenuItem): 试块给我带来了麻烦。Eclipse说类型JMenuItem的getSelectedFile()未定义。对于MenuItems,它似乎也未定义。是否有其他方法可以实现此目的,或者有其他方法可以实现此目的?一旦返回,您需要在上调用getSelectedFile(),因此请将代码更改为: choice.getSelectedFile() 该

作为一个小项目,我认为制作一个文本编辑器会很酷。我目前正忙于打开文件。这是我打开文件的代码(
e
是一个
ActionEvent
,open是一个
JMenuItem
):


试块给我带来了麻烦。Eclipse说类型
JMenuItem
getSelectedFile()
未定义。对于
MenuItem
s,它似乎也未定义。是否有其他方法可以实现此目的,或者有其他方法可以实现此目的?

一旦返回,您需要在上调用
getSelectedFile()
,因此请将代码更改为:

choice.getSelectedFile()

该方法位于JFileChooser:choice.getSelectedFile()上;它应该是
choice.getSelectedFile()还有比JFileChooser更好的吗。如果要使其看起来像是在Microsoft open box中打开的,该怎么办?我建议添加一些描述性文本来解释代码的相关部分。添加说明会很有帮助。请复制代码并运行它。它打开一个文本文件并保存下来。
choice.getSelectedFile()
  private void selectfileActionPerformed(java.awt.event.ActionEvent evt) {                                           

    JFileChooser jFileChooser=new JFileChooser();
   StringBuffer buffer;
    buffer = new StringBuffer();
   int result= jFileChooser.showOpenDialog(this);
    if(result==JFileChooser.APPROVE_OPTION)
    {
        try {
            FileReader reader;
            reader = null;
            JOptionPane.showMessageDialog(this,"hii user clicked open sysytem");
            File file=jFileChooser.getSelectedFile();
            reader=new FileReader(file);
            int i=1;
            while(i!=-1)
            {
                i=reader.read();
                char ch=(char) i;
                buffer.append(ch);

            }

            notepad.setText(buffer.toString());
        } catch (FileNotFoundException ex) {
            Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
}                                          
import java.awt.EventQueue;

public class FileChooser extends JFrame
{
    private JPanel contentPane;
    String filename;
   // main
    public static void main(String[] args)
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                try
                {
                    FileChooser frame = new FileChooser();
                    frame.setVisible(true);
                } catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
        });
    }

    public FileChooser()
    {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        // button to selct file
        JButton btnNewButton = new JButton("Select file");
        btnNewButton.setBounds(10, 2, 89, 23);
        contentPane.add(btnNewButton);
        // area to display file content
        final JTextArea textArea = new JTextArea();
        textArea.setBounds(10, 36, 414, 215);
        contentPane.add(textArea);
         // save button
        final JButton btnSave = new JButton("Save");
        btnSave.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent arg0)
            {

                try
                {
                    FileWriter writer = new FileWriter(filename.replace(".",
                            "_out."));
                    BufferedWriter bwr = new BufferedWriter(writer);

                    bwr.write(textArea.getText());

                    bwr.close();
                    writer.close();
                    System.out.println(textArea.getText());
                } catch (Exception e)
                {
                    System.out.println("Error");
                }
            }
        });
        btnSave.setBounds(283, 2, 89, 23);
        contentPane.add(btnSave);
      // listen to button clicks
        btnNewButton.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent ae)
            {
                JFileChooser fileChooser = new JFileChooser();
                int returnValue = fileChooser.showOpenDialog(null);
                if (returnValue == JFileChooser.APPROVE_OPTION)
                {
                    File selectedFile = fileChooser.getSelectedFile();
                    filename = selectedFile.getAbsolutePath();

                    try
                    {
                        FileReader reader = new FileReader(filename);
                        BufferedReader br = new BufferedReader(reader);
                        textArea.read(br, null);
                        br.close();
                        System.out.println(textArea.getText());

                    } catch (Exception e)
                    {
                        System.out.println("Error");
                    }enter code here

                }

            }
    enter code here
        });

    }
}