关闭

文件的打开保存另存为功能代码实现

标签: 文件打开文件保存菜单
618人阅读 评论(0) 收藏 举报
分类:

(效果图)

import java.awt.BorderLayout;
public class NotePad
{
    private JFrame jf;
    
    private JMenuBar menu;
    
    private JMenuItem open;
   

public class NotePad
{
    private JFrame jf;
    
    private JMenuBar menu;
    
    private JMenuItem open;
   

    private JMenuItem save;
    
    private JMenuItem saveAs;
    
    private JMenu file;
    
    private JMenu help;
    
    private JMenuItem about;
    
    private JTextArea textArea;
    
    private String filePath;
    
    public void show()

    {
        init();
        setStyle();
        registHandler();
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setVisible(true);
    }
    //表单控件初始化
    private void init()
    {
        jf = new JFrame();
        
        menu = new JMenuBar();

        
        open = new JMenuItem("打开");
        
        save = new JMenuItem("保存");
        
        saveAs = new JMenuItem("另存为");
       

        file = new JMenu("文件");
        
        help = new JMenu("帮助");
        
        about = new JMenuItem("关于");
        
        textArea = new JTextArea();
    }
    //表单控件的添加
    private void setStyle()
    {
        jf.setSize(600, 600);
        menu.add(file);

        menu.add(help);
        
        file.add(open);
        file.add(save);

        file.add(saveAs);
        help.add(about);
        
        jf.add(menu, BorderLayout.NORTH);
        JScrollPane jsp = new JScrollPane(textArea);
        jf.add(jsp);
    }

    

交互事件

    private void registHandler()
    {   //给打开按钮添加事件监听(方法实现)
        open.addActionListener(new ActionListener()
        {
            
            @Override
            public void actionPerformed(ActionEvent e)
            {
                FileDialog fd = new FileDialog(jf);
                fd.setVisible(true);
                if (fd.getFile() != null)
                {
                    filePath = fd.getDirectory() + fd.getFile();
                    BufferedReader br = null;
                    try
                    {
                        br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));
                        String line = null;
                        while ((line = br.readLine()) != null)
                        {
                            textArea.append(line + "\n");
                        }
                    }
                    catch (Exception e2)
                    {
                        e2.printStackTrace();
                    }
                    finally
                    {
                        if (br != null)
                        {
                            try
                            {
                                br.close();
                            }
                            catch (IOException e1)
                            {
                                e1.printStackTrace();
                            }
                        }
                    }
                    
                }
            }
        });
        //给保存按钮添加事件监听(方法实现)
        save.addActionListener(new ActionListener()
        {
            
            @Override
            public void actionPerformed(ActionEvent e)
            {
                // 如果filePath为null
                save(false);
            }
        });
          //给另存为按钮添加事件监听(方法实现)
        saveAs.addActionListener(new ActionListener()
        {
            
            @Override
            public void actionPerformed(ActionEvent e)
            {
                save(true);
            }
        });
    }
    
    private void save(boolean isSaveAs)
    {
        while(filePath == null || isSaveAs)
        {
            FileDialog fd = new FileDialog(jf);
            fd.setVisible(true);
            if(fd.getFile()==null)
            {
                continue;
            }
            filePath = fd.getDirectory() + fd.getFile();
        }
        PrintWriter pw = null;
        try
        {
            pw = new PrintWriter(filePath);
            pw.println(textArea.getText());
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }finally{
            if(pw != null)
            {
                pw.close();
            }
        }
        
        
    }
    //主函数调用菜单界面
    public static void main(String[] args)
    {
        new NotePad().show();
        
    }
}
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:117777次
    • 积分:2307
    • 等级:
    • 排名:第16962名
    • 原创:77篇
    • 转载:67篇
    • 译文:2篇
    • 评论:13条
    最新评论