编写一个类似windows记事本的简单程序
编写一个类似windows记事本的简单程序,该程序能够创建文件、读取已经存在的文件、查看和修改文本以及保存为文本文件。
------解决方案--------------------GUI部分
1 我不会GUI
2 就算我会,我也不告诉你,因为你太懒。
------解决方案--------------------在 %JDK_HOME%/demo/jfc 目录下,有 Notepad 和 Stylepad 一个是记事本,一个是带格式的写字板。
都是用 Swing 做的,挺漂亮的,直接点 Notepad.jar 或 Stylepad.jar 就能直接运行,src 下面是源代码。
------解决方案--------------------
贴下偶写的代码,有2个类:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
/**
  * <p>
  * Title: 程序编辑器
  * </p>
  * <p>
  * Description: 增强的文本编辑程序
  * </p>
  * <p>
  * Copyright: Copyright (c) 2005
  * </p>
  * <p>
  * Company:
  * </p>
  *  
  * @author 红色彼岸
  * @version 0.1
  */
class ProEFrame extends JFrame{
   private JFileChooser fileChooser = new JFileChooser();
   private JMenuBar menuBar;
   private JMenu file, edit, format, help;
   private JMenuItem newItem, openItem, saveItem, saveAsItem, pageSetItem, printItem, exitItem;
   private JMenuItem undoItem, cutItem, copyItem, pasteItem, deleteItem, findItem, findNextItem, replaceItem, goToLineItem, selectAllItem, timeItem;
   private JMenuItem autoNextLineItem, fontItem;
   private JMenuItem helpItem, aboutItem;
   private JTextArea textArea;
   private JScrollPane scrollPane;
   private final int TAB_SIZE = 4;
   private File fileName;
   private boolean firstSave = true;
   public ProEFrame(String title) {
  // 设置窗体的标题栏和默认关闭操作
    super(title);
  setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  // 设置菜单栏和菜单的内容
  menuBar = new JMenuBar();
  file  = new JMenu("文件(F)");
  edit  = new JMenu("编辑(E)");
  format = new JMenu("格式(O)");
  help  = new JMenu("帮助(H)");
  setQuickKey(file, 'F');
  setQuickKey(edit, 'E');
  setQuickKey(format, 'O');
  setQuickKey(help, 'H');
  newItem = new JMenuItem("新建(N)");
  openItem = new JMenuItem("打开(O)...");
  saveItem = new JMenuItem("保存(S)");
  saveAsItem = new JMenuItem("另存为...");
  pageSetItem = new JMenuItem("页面设置(U)...");
  printItem = new JMenuItem("打印(P)...");
  exitItem = new JMenuItem("退出");
  setQuickKey(newItem, 'N');
  setQuickKey(openItem, 'O');
  setQuickKey(saveItem, 'S');
  setQuickKey(pageSetItem, 'U');
  setQuickKey(printItem, 'P');
  file.add(newItem);
  file.add(openItem);
  file.add(saveItem);
  file.add(saveAsItem);
  file.addSeparator();
  file.add(pageSetItem);
  file.add(printItem);
  file.addSeparator();
  file.add(exitItem);
  undoItem = new JMenuItem("撤销(Z)");
  cutItem = new JMenuItem("剪切(X)");
  copyItem = new JMenuItem("复制(C)");
  pasteItem = new JMenuItem("粘贴(V)");
  deleteItem = new JMenuItem("删除");
  findItem = new JMenuItem("查找(F)...");
  findNextItem = new JMenuItem("查找下一个");
  replaceItem = new JMenuItem("替换(R)...");
  goToLineItem = new JMenuItem("转到(G)...");
  selectAllItem = new JMenuItem("全选(A)");
  timeItem = new JMenuItem("时间/日期");
  setQuickKey(undoItem, 'Z');
  setQuickKey(cutItem, 'X');