Java写字板程序设计.docx
- 文档编号:25624111
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:45
- 大小:994.77KB
Java写字板程序设计.docx
《Java写字板程序设计.docx》由会员分享,可在线阅读,更多相关《Java写字板程序设计.docx(45页珍藏版)》请在冰豆网上搜索。
Java写字板程序设计
华北科技学院计算机系综合性实验
实验报告
课程名称Java程序设计
实验学期2011至2012学年第1学期
学生所在系部基础部
年级2009专业班级计算B092
学生姓名李宁学号7
任课教师李芙玲
实验成绩
计算机系制
《Java程序设计》课程综合性实验报告
开课实验室:
基础实验室2011年12月5日
实验题目
简易写字板软件设计
一、实验目的
通过编写Java的应用系统综合实例——简易写字板软件,总结、回顾和实践面向对象的编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握。
在实践中感受、学习Java语言,提高Java应用能力。
熟悉在集成开发环境下编写Java程序。
二、设备与环境
硬件:
多媒体计算机
软件:
Windows2000以上的操作系统、JDK开发包、集成开发环境、MyEclipse9.0
三、实验内容
总体要求:
程序功能基本完成,用户界面友好,代码的可维护性和可扩展性较好,最好包括必要的注释和相应的文档。
具体要求:
基本的文本录入,字符修改,删除,换行,粘贴,复制,剪切等功能,主要包括:
1.菜单栏设计及功能实现:
菜单栏主要包括文件、编辑、格式、帮助等常见菜单。
其中文件菜单有新建、打开、保存、另存为、退出等功能;编辑菜单有剪切、复制、粘贴、等功能;格式菜单含有对文字字体、字型、字号及颜色等的设置功能,根据情况可在编辑菜单添加查找和查找替换功能。
2.编辑区设计:
对文本的编辑处理区。
3.工具栏设计:
可根据需要增加该项功能。
4.其他功能设计。
四、实验结果及分析
1.主界面的设计与实现
整个界面共包括菜单栏、工具栏、编辑区和状态栏4部分,如图1.1所示。
图1.1界面全局
菜单栏的设计
本程序共设计5个菜单,分别是文件、编辑、格式、查看和帮助,其中文件菜单实现了新建、打开、保存、另存为和退出功能,编辑菜单实现了撤销、重做、剪切、复制、粘贴、查找、替换、全选和插入时间的功能,格式菜单实现了字体及字体颜色的设置,查看菜单实现了查看工具栏及状态栏的功能,帮助菜单实现了查看软件信息以及作者信息的功能。
各个菜单的功能见图1.2。
图1.2各个菜单功能
②工具栏设计
工具栏实现了新建、保存、对齐方式设置、字形设置、字体设置以及字体大小设置。
右击工具栏可设置工具栏是否可拖动。
如图1.3所示。
图1.3工具栏
③编辑区设计
编辑区实现的文本录入、自动换行和右击菜单功能。
如图1.4所示。
图1.4编辑区
④状态栏设计
状态栏实现了显示操作系统当前时间的功能。
如图1.5所示。
图1.5状态栏
2.文件菜单中各项功能的实现
文件菜单包括新建、打开、保存、另存为和退出5部分,如图所示。
①新建功能设计
新建实现了新建文件功能,当前文档不为空时提示是否保存当前文档,选择“是”进行保存当前文本,选择“否”或“取消”进行取消。
如图2.1和2.2所示。
图2.1新建—保存提示
图2.2新建—保存
②打开功能设计
打开实现了在打开本地文件的功能,选择本地文件并打开在当前窗口。
如图2.3所示。
图2.3打开文档界面
③保存功能设计
保存实现了在当前路径下保存当前文档,若无路径则添加路径。
如图2.4所示。
图2.4保存界面
④另存为功能设计
另存为实现了在新路径下保存当前文档的功能。
如图2.5所示。
图2.5文档另存为
⑤退出功能设计
退出实现了用户退出是提醒用户是否确定要退出。
如图1.11所示。
图2.5退出提示
3.编辑菜单中各项功能的实现
编辑菜单包括撤销、恢复、剪切、复制、粘贴、查找、替换、全选、日期时间9部分,如图3.1所示。
图3.1编辑菜单
①撤销功能设计
撤销实现了返回上一步的操作,当撤销到最初状态时提示无法撤销。
如图3.2所示。
图3.2撤销提示
②恢复功能设计
恢复实现了返回撤销之前的一步,当恢复到最终状态时提示无法恢复。
如图3.3所示。
图3.3恢复提示
③剪切功能设计
剪切实现了对所选文本的剪切。
复制功能设计
复制实现了对所选文本的复制。
粘贴功能设计
粘贴实现了对当前文档剪贴板的粘贴。
查找功能设计
查找实现了在当前文档中查找字符的操作。
如图3.4所示。
图3.4查找界面
⑦替换功能设计
替换实现了对当前文档中字符的替换操作。
如图3.5所示。
图3.5替换界面
⑧全选功能设计
全选实现了对当前文本的全部选择。
如图3.6所示。
图3.6全选界面
⑨插入时间功能设计
插入时间实现了在文本当前位子插入系统时间的功能。
如图3.7所示。
图3.7插入系统时间
4.格式菜单中各项功能的实现
格式菜单包括设置字体、字体颜色2部分,如图4.1所示。
图4.1格式菜单
①字体功能设计
字体实现了对文本区字体以及字号的设置,并通过预览窗口显示效果,单击确定进行设置,
单击取消进行退出字体设置。
若文本为空,提示“您的文本中还没有内容,请输入内容后重新设置!
”如图4.2和4.3所示。
图4.2字体设置预览
图4.3空文档字体设置提示
②字体颜色功能设计
字体颜色实现了最当前文本字体的颜色设置。
如图4.4
图4.4字体颜色设置界面
5.查看菜单中各项功能的实现
查看菜单包括查看工具栏和状态栏2部分,如图5.1所示
图5.1查看菜单
①“工具栏”功能设计
“工具栏”实现了设置工具栏的可见性。
如图5.2和5.3所示。
图5.2设置工具栏可见
图5.3设置工具栏不可见
②“状态栏”功能设计
“状态栏”实现了设置状态栏的可见性。
如图5.4和5.5所示。
图5.4设置状态栏可见
图5.5设置状态栏不可见
6.帮助菜单中各项功能的实现
帮助菜单包括查看“关于记事本”和“关于作者”2部分,如图6.1所示。
图6.1帮助菜单
①“关于记事本”功能设计
“关于记事本”实现了显示记事本信息。
如图6.2所示。
图6.2关于记事本
②“关于作者”功能设计
“关于作者”实现了显示记事本作者的信息。
如图6.3所示。
图6.3关于作者
7.主要代码解释
主窗口:
NoteBook(){
setTitle("简易写字板");
setSize(850,500);
setLocation(240,160);
setVisible(true);
content=newJTextPane();
content.setBackground(newColor(15,227,240));
add(newJScrollPane(content),BorderLayout.CENTER);
myUndo=newMyUndoManager();
content.getDocument().addUndoableEditListener(myUndo);
validate();
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
if(JOptionPane.showConfirmDialog(newFrame(),
"你确定退出吗?
","退出提示",
JOptionPane.WARNING_MESSAGE)==JOptionPane.OK_OPTION)
System.exit(0);
}
});
getJMenuBar();
JPopupMenu();
getToolBar();
}
②菜单栏及功能实现:
创建菜单栏并添加文件、编辑、格式、查看、帮助菜单和它们的子菜单,再添加对应的快捷键,图片以及监听器。
//菜单栏及其功能实现
publicJMenuBargetJMenuBar(){
if(jmenuBar==null){
JMenuBarJmenu=newJMenuBar();
setJMenuBar(Jmenu);
JMenufilemenu=newJMenu("文件(F)");
JMenueditmenu=newJMenu("编辑(E)");
JMenuformatmenu=newJMenu("格式(O)");
JMenuviewmenu=newJMenu("查看(V)");
JMenuhelpmenu=newJMenu("帮助(H)");
Jmenu.add(filemenu);
Jmenu.add(editmenu);
Jmenu.add(formatmenu);
Jmenu.add(viewmenu);
Jmenu.add(helpmenu);
Jmenu.setBackground(newColor(100,240,60));
//创建文件菜单上的各个菜单项并添加到菜单上
JMenuItemnewitem=newJMenuItem("新建(N)");
JMenuItemopenitem=newJMenuItem("打开(O)");
JMenuItemsaveitem=newJMenuItem("保存(S)");
JMenuItemsaveasitem=newJMenuItem("另存为(A)");
JMenuItemexititem=newJMenuItem("退出(X)");
newitem.setIcon(newImageIcon("icons/new.jpg"));
openitem.setIcon(newImageIcon("icons/open.jpg"));
saveitem.setIcon(newImageIcon("icons/save.jpg"));
saveasitem.setIcon(newImageIcon("icons/lingcun.jpg"));
exititem.setIcon(newImageIcon("icons/close.jpg"));
newitem.setAccelerator(KeyStroke.getKeyStroke
(KeyEvent.VK_N,InputEvent.CTRL_MASK));
openitem.setAccelerator(KeyStroke.getKeyStroke
(KeyEvent.VK_O,InputEvent.CTRL_MASK));
saveitem.setAccelerator(KeyStroke.getKeyStroke
(KeyEvent.VK_S,InputEvent.CTRL_MASK));
exititem.setAccelerator(KeyStroke.getKeyStroke
(KeyEvent.VK_F4,InputEvent.ALT_MASK));
filemenu.add(newitem);
filemenu.add(openitem);
filemenu.add(saveitem);
filemenu.add(saveasitem);
filemenu.addSeparator();
filemenu.add(exititem);
//新建菜单项事件
newitem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Action.newFile();
}
});
//打开菜单项事件
openitem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Action.openFile();
}
});
//保存菜单项事件
saveitem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Action.saveFile();
}
});
//另存为菜单项事件
saveasitem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Action.saveasFile();
}
});
//退出菜单项的功能实现
exititem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
if(JOptionPane.showConfirmDialog(newFrame(),
"你确定退出吗?
","退出提示",
JOptionPane.WARNING_MESSAGE)==JOptionPane.OK_OPTION)
System.exit(0);
}
});
//创建编辑菜单上的各个菜单项并添加到菜单上
JMenuItemundoitem=newJMenuItem("撤销(U)");
JMenuItemredoitem=newJMenuItem("重做(R)");
JMenuItemcutitem=newJMenuItem("剪切(T)");
JMenuItemcopyitem=newJMenuItem("复制(C)");
JMenuItempasteitem=newJMenuItem("粘贴(P)");
JMenuItemfinditem=newJMenuItem("查找(F)");
JMenuItemreplaceitem=newJMenuItem("替换(R)");
JMenuItemallitem=newJMenuItem("全选(A)");
JMenuItemdateitem=newJMenuItem("日期/时间(D)");
undoitem.setAccelerator(KeyStroke.getKeyStroke
(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
undoitem.setIcon(newImageIcon("icons/undo.jpg"));
redoitem.setAccelerator(KeyStroke.getKeyStroke
(KeyEvent.VK_Y,InputEvent.CTRL_MASK));
redoitem.setIcon(newImageIcon("icons/redo.jpg"));
cutitem.setAccelerator(KeyStroke.getKeyStroke
(KeyEvent.VK_X,InputEvent.CTRL_MASK));
cutitem.setIcon(newImageIcon("icons/cut.jpg"));
copyitem.setAccelerator(KeyStroke.getKeyStroke
(KeyEvent.VK_C,InputEvent.CTRL_MASK));
copyitem.setIcon(newImageIcon("icons/copy.jpg"));
pasteitem.setAccelerator(KeyStroke.getKeyStroke
(KeyEvent.VK_V,InputEvent.CTRL_MASK));
pasteitem.setIcon(newImageIcon("icons/paste.jpg"));
finditem.setAccelerator(KeyStroke.getKeyStroke
(KeyEvent.VK_3,InputEvent.CTRL_MASK));
replaceitem.setAccelerator(KeyStroke.getKeyStroke
(KeyEvent.VK_G,InputEvent.CTRL_MASK));
allitem.setAccelerator(KeyStroke.getKeyStroke
(KeyEvent.VK_A,InputEvent.CTRL_MASK));
dateitem.setIcon(newImageIcon("icons/time.jpg"));
editmenu.add(undoitem);
editmenu.add(redoitem);
editmenu.addSeparator();
editmenu.add(cutitem);
editmenu.add(copyitem);
editmenu.add(pasteitem);
editmenu.addSeparator();
editmenu.add(finditem);;
editmenu.add(replaceitem);
editmenu.addSeparator();
editmenu.add(allitem);
editmenu.addSeparator();
editmenu.add(dateitem);
//添加监听器来实现编辑菜单上的各个菜单项的功能
//撤销菜单项的功能实现
undoitem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
try{
getUndoManager().undo();//执行撤销操作
}catch(CannotUndoExceptionex){
JOptionPane.showMessageDialog(newJFrame(),
"无法撤销!
","撤销提示",
JOptionPane.INFORMATION_MESSAGE);
}
}
});
//恢复菜单项的功能实现
redoitem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
try{
getUndoManager().redo();//执行重做操作
}catch(CannotRedoExceptionex){
JOptionPane.showMessageDialog(newJFrame(),
"无法恢复!
","恢复提示",
JOptionPane.INFORMATION_MESSAGE);
}
}
});
//剪切菜单项的功能实现
cutitem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
content.cut();
}
});
//复制菜单项的功能实现
copyitem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
content.copy();
}
});
//粘贴菜单项的功能实现
pasteitem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
content.paste();
}
});
//查找菜单项的功能实现
finditem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Action.find();
}
});
//替换菜单项的功能实现
replaceitem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Action.replace();
}
});
//全选菜单项的功能实现
allitem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
content.selectAll();
}
});
//时间菜单项的功能实现
dateitem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringstr=content.getText();//获取当前文本区文本
content.setText(str+s);
}
});
//创建格式菜单上的各个菜单项并添加到菜单上
JMenuItemworditem=newJMenuItem("字体(F)");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 写字板 程序设计