编写一个类似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');