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

(效果图)

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
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值