基本要求:题目所实现的程序必须保证有以下技术实现:
GUI界面;
菜单
事件处理
对话框
文件读写
异常[可选]
多线程[可选,但对游戏则为必选]要求:
设计一个简单的文本编辑器,可以实现多文件处理、实现文件的创建、浏览、编辑(允许文本复制、修改、删除)、对已经修改的文件进行保存或以另外的文件名称保存

解决方案 »

  1.   

    这是我之前写的...你自己看看吧!
    import java.awt.*;
    import java.awt.event.*;public class test1 { // 定义主类:
    public static void main(String args[]) {
    MyMenuFrame mf = new MyMenuFrame();
    mf.setSize(new Dimension(300, 200)); // 用setSize( )方法指定窗口的初始大小
    mf.setVisible(true); // 使窗口可见
    }
    }class MyMenuFrame extends Frame implements ActionListener, ItemListener// 定义窗口
    {
    MenuBar m_MenuBar;
    Menu menuFile, menuEdit, m_Edit_Paste;
    MenuItem mi_File_Open, mi_File_Close, mi_File_Exit, mi_Edit_Copy;
    MenuItem pi_New, pi_Del, pi_Pro, mi_Paste_All, mi_Paste_Part;
    CheckboxMenuItem mi_Edit_Cut;
    PopupMenu popM;
    TextArea ta; MyMenuFrame() // 构造函数
    {
    super("拥有菜单的窗口"); // 指定窗口标题
    ta = new TextArea("", 5, 20);
    ta.addMouseListener(new HandleMouse(this)); // 文本域响应鼠标事件
    add("Center", ta); popM = new PopupMenu(); // 创建弹出窗口
    pi_New = new MenuItem("新建"); // 为弹出窗口创建菜单子项
    pi_New.addActionListener(this); // 使菜单子项响应动作事件
    popM.add(pi_New); // 为弹出菜单加入菜单子项
    pi_Del = new MenuItem("删除");
    pi_Del.addActionListener(this);
    popM.add(pi_Del);
    pi_Pro = new MenuItem(" 属性 ");
    pi_Pro.addActionListener(this);
    popM.add(pi_Pro);
    ta.add(popM); // 将弹出窗口加在文本域上 m_MenuBar = new MenuBar();// 创建菜单条 menuFile = new Menu("文件"); // 创建菜单子项并指定快捷键
    mi_File_Open = new MenuItem("打开", new MenuShortcut('o'));
    mi_File_Close = new MenuItem("关闭");
    mi_File_Exit = new MenuItem("退出");
    mi_File_Exit.setShortcut(new MenuShortcut('x')); // 设置菜单子项的快捷键
    mi_File_Open.setActionCommand("打开"); // 再设置命令名
    // mi_File_Exit.setActionCommand(“退出”);
    // //以便动作响应程序调用
    mi_File_Open.addActionListener(this); // 使菜单子项响应动作事件
    mi_File_Close.addActionListener(this);
    menuFile.add(mi_File_Open); // 把菜单子项加入菜单项
    menuFile.add(mi_File_Close);
    menuFile.addSeparator(); // 加一条横向分割线
    menuFile.add(mi_File_Exit);
    m_MenuBar.add(menuFile); // 把菜单项加入菜单条 menuEdit = new Menu("编辑");
    mi_Edit_Copy = new MenuItem("复制");
    mi_Edit_Cut = new CheckboxMenuItem("剪切"); // 创建选择菜单子项
    m_Edit_Paste = new Menu("粘贴"); // 创建二级菜单项
    mi_Paste_All = new MenuItem("全部粘贴");
    mi_Paste_Part = new MenuItem("部分粘贴");
    mi_Edit_Copy.addActionListener(this);
    mi_Edit_Cut.addItemListener(this); // 检测盒菜单子项产生选择事件
    m_Edit_Paste.add(mi_Paste_Part); // 为二级菜单项加入菜单子项
    m_Edit_Paste.add(mi_Paste_All);
    mi_Paste_Part.addActionListener(this);
    mi_Paste_All.addActionListener(this);
    menuEdit.add(mi_Edit_Copy);
    menuEdit.add(mi_Edit_Cut);
    menuEdit.addSeparator();
    menuEdit.add(m_Edit_Paste); // 把二级菜单项加入菜单项
    m_MenuBar.add(menuEdit); this.setMenuBar(m_MenuBar); // 把菜单条加入整个Frame容器
    } public void actionPerformed(ActionEvent e) // 响应动作事件
    {
    if (e.getActionCommand() == "退出") // 关闭窗口退出程序
    {
    dispose();
    System.exit(0);
    } else
    // 否则显示选择的命令名
    ta.setText("\n\n\n\n\n\n\t\t\ t" + e.getActionCommand());
    } public void itemStateChanged(ItemEvent e) // 响应CheckboxMenuItem单击事件
    {
    if (e.getSource() == mi_Edit_Cut)
    if (((CheckboxMenuItem) e.getSource()).getState()) // 查看是否选中
    ta.setText("\n\n\n\n\n\n\t\t\t" + "选择了" // 因为无命令名,所以用标签
    + ((CheckboxMenuItem) e.getSource()).getLabel());
    else
    ta.setText("\n\n\n\n\n\n\t\t\t" + "未选择"
    + ((CheckboxMenuItem) e.getSource()).getLabel());
    }
    }class HandleMouse extends MouseAdapter// 处理鼠标事件类,继承鼠标事件裁剪类
    {
    MyMenuFrame m_Parent; // 产生事件的组件所在的窗口容器 HandleMouse(MyMenuFrame mf)// 构造函数
    {
    m_Parent = mf;
    } public void mouseReleased(MouseEvent e)// 鼠标按键松开事件弹出菜单
    {
    if (e.isPopupTrigger()) // 检查鼠标事件是否是由弹出菜单引发的
    m_Parent.popM.show((Component) e.getSource(), e.getX(), e.getY());
    }// 将弹出菜单显示在用户鼠标点击的位置
    }
      

  2.   

    jdk目录\demo\jfc\Notepad\ 
    这里有你想要的