package MyPackage;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.text.BadLocationException;
import javax.swing.undo.UndoManager;
import javax.swing.border.EtchedBorder;
public class NoteBook {
/**
* 我的记事本程序
* @author LiDan(李丹) Pujunlin(蒲军霖)
* E-Mail: tance@live.cn
* Adress: 河北邯郸河北工程大学计算机06级1班
* 河北邯郸河北工程大学计算机06级2班
* @version 1.0
* @param args
*/
public static void main(String[] args){
MyNoteBook mnb=new MyNoteBook();
mnb.setVisible(true);
}
}
class MyNoteBook extends JFrame{
private static final long serialVersionUID = 1L;
private JTextArea ta;
private Container aaa;
private JMenuItem newfile;
private JMenuItem open;
private JMenuItem save;
private JMenuItem saveother;
private JMenuItem exititem;
private JMenuItem selectall;
private JMenuItem cancel;
private JMenuItem redo;
private JMenuItem cut;
private JMenuItem copy;
private JMenuItem paste;
private JMenuItem findstr;
private JMenuItem next;
private JMenuItem replace;
private JMenuItem go;
private JMenuItem delete;
private JMenuItem dateinsert;
private JMenuItem ziti;
private JCheckBoxMenuItem statubar;
private JMenuItem about;
private JMenuItem newItemMenuItem ;
private JMenuItem newItemMenuItem_1;
private JMenuItem newItemMenuItem_2;
private JMenuItem newItemMenuItem_3;
private JMenuItem newItemMenuItem_4;
private String filename="新建 文本文档--记事本 \"*.txt\"";
//创建一个临时字符串作为退出时监听文档内容是否发生改变之用
private String ischanged="";
private UndoManager undoManager;
private JLabel label;
private FontChooser fontchooser;
private int cancelnumber=0;
public MyNoteBook(){
setTitle(filename);
setSize(577,465);
//设置窗口关闭的默认操作
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
//让窗口居中显示
Dimension screensize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension framesize=getSize();
if(framesize.width>screensize.width)
framesize.width=screensize.width;
if(framesize.height>screensize.height)
framesize.height=screensize.height;
setLocation((screensize.width-framesize.width)/2,(screensize.height-framesize.height)/2);
//设置图标
Image img=Toolkit.getDefaultToolkit().getImage("maizang.gif");
setIconImage(img);
ta=new JTextArea();
ta.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
//监听文本域中光标的移动
ta.addCaretListener(new CaretListener() {
public void caretUpdate(final CaretEvent arg0) {
position();
}
});
//为文档注册撤销监听器
undoManager = new UndoManager();
ta.getDocument().addUndoableEditListener(undoManager);
//为文档注册一个文本变化的监听器
ta.getDocument().addDocumentListener(new DocumentListener(){
public void changedUpdate(DocumentEvent e) {
// TODO Auto-generated method stub
}
public void insertUpdate(DocumentEvent e) {
// TODO Auto-generated method stub
judgeUsed();
}
public void removeUpdate(DocumentEvent e) {
// TODO Auto-generated method stub
judgeUsed();
}
});
// 添加键盘输入监听器
ta.addFocusListener(new MyFocusAdapter());
aaa=getContentPane();
aaa.add(ta);
final JScrollPane scrollpane=new JScrollPane();
aaa.add(scrollpane,null);
//为文本域添加滚动条
scrollpane.getViewport().add(ta,null);
final JPopupMenu popupMenu = new JPopupMenu();
popupMenu.setAutoscrolls(true);
addPopup(ta, popupMenu);
//右键菜单选项
newItemMenuItem_4 = new JMenuItem();
newItemMenuItem_4.setText("全选(A)");
newItemMenuItem_4.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_A, InputEvent.CTRL_MASK));
newItemMenuItem_4.addActionListener(new AbstractAction(){
private static final long serialVersionUID = 3L;
public void actionPerformed(ActionEvent e){
ta.selectAll();
}
});
popupMenu.add(newItemMenuItem_4);
newItemMenuItem_4.setEnabled(false);
newItemMenuItem_4.setMnemonic('A');
newItemMenuItem = new JMenuItem();
newItemMenuItem.setText("撤销(U)");
newItemMenuItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_Z, InputEvent.CTRL_MASK));
newItemMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
if(undoManager.canUndo()) {
try {
undoManager.undo();
}
catch(Exception er){}
}
}
});
newItemMenuItem.setEnabled(false);
newItemMenuItem.setMnemonic('U');
popupMenu.add(newItemMenuItem);
popupMenu.addSeparator();
newItemMenuItem_1 = new JMenuItem();
newItemMenuItem_1.setText("剪切(T)");
newItemMenuItem_1.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_X, InputEvent.CTRL_MASK));
newItemMenuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
ta.cut();
}
});
newItemMenuItem_1.setEnabled(false);
newItemMenuItem_1.setMnemonic('T');
popupMenu.add(newItemMenuItem_1);
newItemMenuItem_2 = new JMenuItem();
newItemMenuItem_2.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
ta.copy();
}
});
newItemMenuItem_2.setText("复制(C)");
newItemMenuItem_2.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_C, InputEvent.CTRL_MASK));
newItemMenuItem_2.setEnabled(false);
newItemMenuItem_2.setMnemonic('C');
popupMenu.add(newItemMenuItem_2);
newItemMenuItem_3 = new JMenuItem();
newItemMenuItem_3.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
ta.paste();
}
});
newItemMenuItem_3.setText("粘贴(V)");
newItemMenuItem_3.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_V, InputEvent.CTRL_MASK));
popupMenu.add(newItemMenuItem_3);
newItemMenuItem_3.setMnemonic('V');
popupMenu.addSeparator();
final JMenuItem newItemMenuItem_4 = new JMenuItem();
newItemMenuItem_4.setText("删除(D)");
newItemMenuItem_4.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_D,InputEvent.CTRL_MASK));
newItemMenuItem_4.setMnemonic('D');
popupMenu.add(newItemMenuItem_4);
//添加菜单栏
JMenuBar menubar=new JMenuBar();
setJMenuBar(menubar);
/** 添加菜单项"文件" */
JMenu menu1=new JMenu("文件(F)");
menu1.setMnemonic('F');
//添加菜单项"新建(N)"并添加公共的事件监听器
newfile=menu1.add(new ShowAction("新建(N)"));
//设置菜单键的快捷键
newfile.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_N, InputEvent.CTRL_MASK));
newfile.setMnemonic('N');
//添加菜单项"打开(o)"
open=menu1.add(new ShowAction("打开(O)"));
open.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_O, InputEvent.CTRL_MASK));
open.setMnemonic('O');
//添加保存(S)菜单项
save=menu1.add(new ShowAction("保存(S)"));
save.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_S, InputEvent.CTRL_MASK));
save.setEnabled(false);
save.setMnemonic('S');
//添加另存为菜单项
saveother=menu1.add(new ShowAction("另存为(A)"));
saveother.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_A, InputEvent.CTRL_MASK));
saveother.setEnabled(false);
saveother.setMnemonic('A');
menu1.addSeparator();
exititem=menu1.add(new ShowAction("退出(T)"));
exititem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));
exititem.setMnemonic('T');
menubar.add(menu1);
/**
* 编辑菜单栏
* 功能:全选,撤销,剪切,复制,粘贴,删除,查找,替换
* */
JMenu menu2=new JMenu("编辑(E)");
menu2.setMnemonic('E');
/**全选*/
selectall=menu2.add(new ShowAction("全选(A)"));
selectall.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_A, InputEvent.CTRL_MASK));
selectall.setEnabled(false);
selec
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Java课程设计.rar (53个子文件)
Java课程设计
maizang.GIF 4KB
FontChooser.java 6KB
Java课程设计说明书.doc 537KB
MyPackage
GotoDialog$2.class 767B
MyNoteBook$4.class 766B
GetDate.class 1KB
MyNoteBook.class 13KB
MyNoteBook$8.class 714B
ReplaceDialog.class 5KB
NoteBook.class 353B
MyNoteBook$12.class 810B
MyNoteBook$11.class 658B
MyNoteBook$2.class 665B
MyNoteBook$3.class 678B
FindDialog$ShowListener.class 2KB
MyNoteBook$ShowAction.class 5KB
FontChooser$2.class 1KB
FontChooser.class 7KB
FindDialog$1.class 757B
ReplaceDialog$ShowListener.class 2KB
FontChooser$4.class 1KB
MyNoteBook$1.class 537B
GotoDialog$3.class 728B
InsertDate$2.class 728B
InsertDate.class 4KB
FindDialog$ActionShow.class 2KB
MyNoteBook$10.class 761B
MyNoteBook$13.class 756B
FontChooser$1.class 1KB
ReplaceDialog$ShowAction.class 2KB
GotoDialog.class 4KB
MyNoteBook$5.class 635B
MyNoteBook$6.class 636B
FontChooser$5.class 572B
FindDialog$2.class 1KB
MyNoteBook$9.class 1KB
InsertDate$1.class 2KB
FontChooser$3.class 1KB
MyNoteBook$15.class 852B
FindDialog.class 6KB
GotoDialog$1.class 1KB
MyNoteBook$MyFocusAdapter.class 1KB
MyNoteBook$ShowAction$1.class 867B
ReplaceDialog$1.class 210B
MyNoteBook$14.class 988B
MyNoteBook$7.class 637B
FindDialog.java 5KB
java课程设计代码部分.doc 165KB
InsertDate.java 4KB
GotoDialog.java 3KB
java程序设计目录.doc 28KB
ReplaceDialog.java 6KB
NoteBook.java 22KB
共 53 条
- 1
资源评论
疯狂的深水炸弹
- 粉丝: 5
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功