记事本_txt.java

import java.awt.BorderLayout;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import simpleFrame.FrameUtil;

/**
 * 菜单组件 菜单条(menuBar) 菜单(menu) 菜单项(menuItem)
 * 
 * 菜单条可以添加菜单
 * 
 * 菜单可以添加菜单项
 * 
 * 复选菜单 菜单添加菜单,菜单添加菜单项
 * 
 * 每个监听器都只负责一个活动
 * 
 * @author Administrator
 *
 */
public class Demo2 {

    JFrame frame = new JFrame("记事本");
    // 菜单条
    JMenuBar bar = new JMenuBar();
    // 文件菜单
    JMenu fileMenu = new JMenu("文件");
    JMenu editMenu = new JMenu("编辑");
    JMenu switchMenu = new JMenu("最近打开的文件");

    // 菜单项
    JMenuItem openMenu = new JMenuItem("打开");
    JMenuItem saveMenu = new JMenuItem("保存");

    JMenuItem aboutMenu = new JMenuItem("关于");
    JMenuItem closeMenu = new JMenuItem("关闭");

    JMenuItem workMenu1 = new JMenuItem("0910project");
    JMenuItem workMenu2 = new JMenuItem("1209project");
    JMenuItem workMenu3 = new JMenuItem("1110project");

    JTextArea area = new JTextArea(20, 30);

    public void initNotepad() {
        // frame.add(bar);
        // 菜单条添加菜单
        bar.add(fileMenu);
        bar.add(editMenu);

        // 菜单添加菜单项
        fileMenu.add(openMenu);
        fileMenu.add(saveMenu);

        // 给打开添加事件
        openMenu.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO 自动生成的方法存根

                try {
                    FileDialog dialog = new FileDialog(frame, "请选择打开的文件",
                            FileDialog.LOAD);
                    dialog.setVisible(true);

                    // 获取用户的选择的路径和文件名
                    String path = dialog.getDirectory();
                    String filename = dialog.getFile();

                    frame.setTitle(filename);

                    FileReader fileReader = new FileReader(path + filename);
                    BufferedReader bufferedReader = new BufferedReader(
                            fileReader);

                    String string = "";
                    area.setText("");
                    int lineNum = 0;
                    while ((string = bufferedReader.readLine()) != null) {
                        area.append(string + "\r\n");
                        lineNum++;
                    }
                } catch (IOException e1) {
                    // TODO 自动生成的 catch 块
                    e1.printStackTrace();
                }

            }
        });

        // 给保存添加事件
        saveMenu.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO 自动生成的方法存根
                try {
                    FileDialog fileDialog = new FileDialog(frame, "请选择保存的路径",
                            FileDialog.SAVE);
                    fileDialog.setVisible(true);

                    // 获取用户选择的路径和文件名
                    String path = fileDialog.getDirectory();
                    String filename = fileDialog.getFile();

                    //
                    FileOutputStream fileOutputStream = new FileOutputStream(
                            new File(path, filename));

                    // 获取文本域的内容 把内容写出
                    String content = area.getText();

                    content = content.replaceAll("\n", "\r\n"); // 也可以将JTextArea
                                                                // 改成TextArea
                                                                // 没有\r\n
                    fileOutputStream.write(content.getBytes());
                    // 关闭资源
                    fileOutputStream.close();
                } catch (IOException e1) {
                    // TODO 自动生成的 catch 块
                    e1.printStackTrace();
                }
            }
        });

        editMenu.add(aboutMenu);
        editMenu.add(closeMenu);

        // 复选菜单
        switchMenu.add(workMenu1);
        switchMenu.add(workMenu2);
        switchMenu.add(workMenu3);

        fileMenu.add(switchMenu);

        // 添加菜单条
        frame.add(bar, BorderLayout.NORTH);
        frame.add(area);

        FrameUtil.initFrame(frame, 500, 600);
    }
    public static void main(String[] args) {
        new Demo2().initNotepad();
    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值