在校使用电脑学习时,常需要快速记笔记,根据当前在民大学习的Java语言,而且电脑已经成为了每位同学甚至每家每户手头都必有的一种实用性工具,它大大提高了人们的工作效率。电脑端的记事本应用一直是每台电脑所必备的实用性应用,为使用者提供了多种编辑上的便利,特别是快速笔记。正因为它的这些特点,才让它成为每台电脑中必不可少的成分。
根据胡老师要求,再结合现如今电脑端记事本是每台电脑的标配,有相当大的实用性,方便人们平时的记事之用,尤其是在快速笔记这方面,更是有非常大的作用,基本能满足人们的记事需求,有很大的开发及继续完善开发的意义。
基于记事本的诸多优点,本次设计针对电脑端的记事本进行开发设计,并在原有基础上进行完善,使它的功能更完善、更人性化及更实用化。
在实现系统自带笔记本的功能同时,再添加一些个性化功能,例如为记事本添加上行号(这大大提高了我们程序员看代码的方便性),在状态栏添加上当前时间以及字数统计,让用户能够对自己所写的字数一目了然,大大增强了用户体验。
此外,此记事本支持用户自定义背景颜色以及字体颜色,增强了趣味性,用户可以根据自己的喜好选择符合自己的主题。
即实现的功能有:
(1)“文件”主菜单中有“新建”、“打开”、“保存”、“另存为”、“页面设置”、“打印”、“退出”这几个子功能。
(2)“编辑”主菜单中有“撤销”、“剪切”、“复制”、“粘贴”、“删除”、“查找”、“查找下一个”、“替换”、“转到”、“全选”、“日期/时间”这几个子功能。
(3)“格式”主菜单中有“自动换行”、“字体”、“背景颜色”、“字体颜色”这四个子功能。
(4)“查看”主菜单中有“状态栏”子功能。
(5)“帮助”主菜单中有“查看帮助”、“关于记事本”这两个子功能。
由于当前学期主修的是Java程序设计,所以本电脑端记事本采用JAVA语言进行开发设计。Java语言是一门面向对象的语言,风格接近C、C++语言,但又舍弃了C和C++语言中易引起错误的指针、运算符重载、多重继承等特性,使开发的程序质量更高。由于开发记事本的难度不高,因此通过Java语言在当今主流的IDEA编译器上就可以实现开发了。
时序图
用户可以在系统里创建新文件,编辑文字,并保存,以便查看,还可以进行批处理文件等操作。
打开记事本后,可在文本域进行文本输入,或者进行一系列执行操作包括:文件、编辑、格式以及帮助菜单。
主流程图
文件菜单操作流程图
编辑菜单操作流程图
格式菜单操作流程图
用户
用户
电脑端
记事本
处理
处理
基本模型:
细化后的数据流图:
记事本
用户
7
打印
5
页面设置
4
编辑
字符
6
保存
3
格式
本地磁盘
记事本
用户
1
新建
2
打开
记事本
记事本
字符
字符
字符
记事本
记事本
打印文档
①背景颜色实现
JColorChooser jcc1 = new JColorChooser();
JOptionPane.showMessageDialog(this, jcc1,"选择背景颜色颜色",-1);
color = jcc1.getColor();
textArea.setBackground(color);
效果:
②字体颜色
jcc1=new JColorChooser();
JOptionPane.showMessageDialog(this, jcc1, "选择字体颜色", -1);
color = jcc1.getColor();
//String string=textArea.getSelectedText();
textArea.setForeground(color);
③鼠标右击菜单
// 创建弹出菜单
final JPopupMenu jp=new JPopupMenu(); //创建弹出式菜单,下面三项是菜单项
textArea.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if(e.getButton()==MouseEvent.BUTTON3)//只响应鼠标右键单击事件
{
jp.show(e.getComponent(),e.getX(),e.getY());//在鼠标位置显示弹出式菜单
}
}
});
④打印功能
public void Print()
{
try{
p = getToolkit().getPrintJob(this,"ok",null);//创建一个Printfjob 对象 p
g = p.getGraphics();//p 获取一个用于打印的 Graphics 的对象
//g.translate(120,200);//改变组建的位置
this.textArea.printAll(g);
p.end();//释放对象 g
}
catch(Exception a){
}
}
⑤显示时间
//用到了线程,每1秒刷新一次时间
public class Clock extends Thread{
public void run() {
while (true) {
GregorianCalendar time = new GregorianCalendar();
int hour = time.get(Calendar.HOUR_OF_DAY);
int min = time.get(Calendar.MINUTE);
int second = time.get(Calendar.SECOND);
NotepadMainFrame.label1.setText(" 当前时间:" + hour+ ":" + min + ":" + second);
try {
Thread.sleep(1000);
} catch (InterruptedException exception) {
}
}
}
}
⑥显示行数和列数
label2 = new JLabel(" 第 " + linenum + " 行, 第 " + columnnum+" 列 ");
toolState.add(label2);
toolState.addSeparator();
textArea.addCaretListener(new CaretListener() { //记录行数和列数
public void caretUpdate(CaretEvent e) {
JTextArea editArea = (JTextArea)e.getSource();
try {
int caretpos = editArea.getCaretPosition();
linenum = editArea.getLineOfOffset(caretpos);
columnnum = caretpos - textArea.getLineStartOffset(linenum);
linenum += 1;
label2.setText(" 第 " + linenum + " 行, 第 " + (columnnum+1)+" 列 ");
}
catch(Exception ex) { }
}});
contentPane.add(toolState, BorderLayout.SOUTH);
toolState.setVisible(false);
toolState.setFloatable(false);
① 文件菜单
② 编辑菜单
③ 更换颜色、字体大小
从刚开始上实验课不知道画什么图开始,到后来每次都能画的得心应手,这是一个质的飞跃。通过本学期的实验课既提升了个人作图水平,更是在不断深入了解软件工程这一门学科。也深切体会到,一个软件的开发需要一步步脚踏实地地进行。
文档源文件下载地址:
https://files-cdn.cnblogs.com/files/xiaochengzi2/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1.zip
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.bhha.com.cn/news/5190.html