解决方案 »

  1.   

    用JFileChooser就挺好的了,FileDialog这个awt的老古董就别用了吧
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.SwingUtilities;public class Demo extends JFrame {
        private JTextArea jta;
        private JButton jbtnOpen;    private void initUI() {
            jta = new JTextArea();
            jta.setEditable(false);
            jbtnOpen = new JButton("open");        add(new JScrollPane(jta), BorderLayout.CENTER);
            add(jbtnOpen, BorderLayout.SOUTH);        jbtnOpen.addActionListener(new ActionListener() {            @Override
                public void actionPerformed(ActionEvent e) {
                    JFileChooser fileChooser = new JFileChooser();
                    BufferedReader br = null;
                    int action = fileChooser.showOpenDialog(Demo.this);
                    if (action == JFileChooser.APPROVE_OPTION) {
                        File file = fileChooser.getSelectedFile();
                        try {
                            br = new BufferedReader(new FileReader(file));
                            String eachLine = null;
                            while ((eachLine = br.readLine()) != null) {
                                jta.append(eachLine);
                                jta.append(System.getProperty("line.separator"));
                            }
                        } catch (FileNotFoundException e1) {
                            e1.printStackTrace();
                        } catch (IOException e1) {
                            e1.printStackTrace();
                        } finally{
                            if(br != null){
                                try {
                                    br.close();
                                } catch (IOException e1) {
                                    e1.printStackTrace();
                                }
                            }
                        }
                    }
                }
            });
        }    public Demo() {
            setTitle("open demo");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setSize(300, 300);        initUI();
        }    public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {            @Override
                public void run() {
                    Demo demo = new Demo();
                    demo.setVisible(true);
                }
            });
        }
    }