读书人

编写一个类似windows记事本的简单程序

发布时间: 2012-03-13 11:21:11 作者: rapoo

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


setQuickKey(copyItem, 'C');
setQuickKey(pasteItem, 'V');
setQuickKey(findItem, 'F');
setQuickKey(replaceItem, 'R');
setQuickKey(goToLineItem, 'G');
setQuickKey(selectAllItem, 'A');

edit.add(undoItem);
edit.addSeparator();
edit.add(cutItem);
edit.add(copyItem);
edit.add(pasteItem);
edit.add(deleteItem);
edit.addSeparator();
edit.add(findItem);
edit.add(findNextItem);
edit.add(replaceItem);
edit.add(goToLineItem);
edit.addSeparator();
edit.add(selectAllItem);
edit.add(timeItem);

autoNextLineItem = new JMenuItem("自动换行(W)");
fontItem = new JMenuItem("字体...");

setQuickKey(autoNextLineItem, 'W');

format.add(autoNextLineItem);
format.add(fontItem);

helpItem = new JMenuItem("帮助主题(H)");
aboutItem = new JMenuItem("关于ProE");

setQuickKey(helpItem, 'H');

help.add(helpItem);
help.add(aboutItem);

menuBar.add(file);
menuBar.add(edit);
menuBar.add(format);
menuBar.add(help);
setJMenuBar(menuBar);

textArea = new JTextArea();
textArea.setTabSize(TAB_SIZE);
scrollPane = new JScrollPane(textArea);
this.getContentPane().add(scrollPane, BorderLayout.CENTER);


[解决办法]
呵呵,CSDN下载里面就有,做的挺漂亮的

读书人网 >J2SE开发

热点推荐