Java课程设计报告记事本Word文档下载推荐.docx
《Java课程设计报告记事本Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java课程设计报告记事本Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
JTextPane用于显示DefaultStyledDocument的内容。
通过改变与DefaultStyledDocument相关联的Style对象,能够改变DefaultStyledDocument在JTextPane中的显示方式。
此应用程序也能够将DefaultStyledDocument存储到磁盘上和读入以前存储的DefaultStyledDocument。
读、写、操纵DefaultStyledDocument的所有选项都可以通过使用菜单项来实现。
当这些菜单项被选中时,它们生成事件。
使用ActionListener,ItemListener,UndoableEditListener和MenuDragMouseListener对象来处理这些事件。
要求通过课程设计,使学生将掌握的Java语言基本知识应用于实践中,在实际练习中加深对Java语言各方面的知识和概念的理解,掌Java程序设计中编程方法、编程思想,深入理解Java语言在实际中的应用。
要求学生动手上机编程,掌握Java程序设计思想和设计方法,设计实现一个简单Java文档编辑器,该编辑器由打开文件、新建文件、保存、复制、剪切、粘贴、撤销、删除等基本文本操作功能组件组成,有能力和时间的同学还可以设计实现如查找、时间、设置字体颜色、格式等功能,右键菜单响应,快捷键等功能,进一步加强自己的编程能力和编程思想。
二、设计思路
本程序设计主要大体流程为:
开始,启动MainFunction的主函数main(),调用Loading方法启动dluThread线程登陆界面,dluThread线程结束后调用MiniText()方法,调用initTextPane(方法初始化面板,调用initMenu()方法初始化菜单,调用initAboutDialog()方法初始化关于对话框,调用initToolBar()方法初始化工具栏,调用initRightKey()方法初始化右键设置,启动runtime线程创建动态时间按钮,点击文件菜单里的退出按钮或关闭窗口退出。
基本流程图如下:
图1基本流程图
本Java文本编辑器功能设计如下:
图2基本功能图
三、具体实现
3.1类设计
主要有四个类:
1.类MiniText,包括initTextPane方法初始化面板,initMenu()方法初始化菜单,initAboutDialog()方法初始化关于对话框,initToolBar()方法初始化工具栏,initRightKey()方法初始化右键设置,等方法。
类成员如下:
2.类Loading(实现登陆)
类成员如下:
3.类runtime(实现时间同步)
4.类MainFunction(包含主函数)
3.2主要功能代码实现
(1).登陆界面
classLoadingextendsJWindowimplementsRunnable{
ThreaddluThread=null;
privateJProgressBarprogress;
publicLoading(){
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
//设置光标为等待状态
JPaneldlu=newJPanel(newBorderLayout());
URLurl=getClass().getResource("
/images/loading.jpg"
);
if(url!
=null){
dlu.add(newJButton(newImageIcon(url)),BorderLayout.CENTER);
}
progress=newJProgressBar(1,100);
progress.setStringPainted(true);
progress.setBorderPainted(true);
progress.setBackground(Color.white);
progress.setForeground(Color.green);
dlu.add(progress,BorderLayout.SOUTH);
setContentPane(dlu);
//设置窗口属性为登陆面板属性
Dimensionscreen=getToolkit().getScreenSize();
pack();
//显示登陆界面
setLocation(screen.width/4,screen.height/4);
//设置登陆界面始终在屏幕中间显示
publicvoidstart(){
//this.toFront();
dluThread=newThread(this);
dluThread.start();
publicvoidrun(){
show();
try{
for(inti=0;
i<
100;
i++){
Thread.sleep(100);
progress.setValue(progress.getValue()+1);
progress.setString("
欢迎进入迷你编辑,请稍后......"
+i+"
%"
}}
catch(Exceptionex){
ex.printStackTrace();
dispose();
//关闭登陆界面}}
(2).时间标签
classruntimeextendsJButtonimplementsRunnable{
Threaddatetime=null;
publicruntime(){}
for(;
;
){
//java.util.Datetimeer=newjava.util.Date();
Calendarnow=Calendar.getInstance();
intyear1=now.get(Calendar.YEAR);
intmonth1=now.get(Calendar.MONTH);
intday1=now.get(Calendar.DAY_OF_MONTH);
inthour1=now.get(Calendar.HOUR);
intminute1=now.get(Calendar.MINUTE);
intsec=now.get(Calendar.SECOND);
setText(year1+"
年"
+month1+"
月"
+day1+"
日"
+hour1+"
:
"
+minute1+"
+sec);
//System.out.println(now.get(Calendar.DAY_OF_MONTH)-60);
try{
Thread.currentThread().sleep(1000);
}catch(InterruptedExceptione){}}}}
(3).右键的实现:
voidinitRightKey(){
filepopup=newJPopupMenu();
uundo=newJMenuItem("
撤消(U)"
uundo.setMnemonic('
U'
ccut=newJMenuItem("
剪切(T)"
ccut.setMnemonic('
T'
ccopy=newJMenuItem("
复制(C)"
ccopy.setMnemonic('
C'
ppaste=newJMenuItem("
粘贴(V)"
ppaste.setMnemonic('
V'
ddelete=newJMenuItem("
删除(D)"
ddelete.setMnemonic('
D'
sselectall=newJMenuItem("
全选(A)"
sselectall.setMnemonic('
A'
filepopup.add(uundo);
filepopup.addSeparator();
filepopup.add(ccut);
filepopup.add(ccopy);
filepopup.add(ppaste);
filepopup.add(ddelete);
filepopup.add(sselectall);
uundo.addActionListener(action);
ccut.addActionListener(action);
ccopy.addActionListener(action);
ppaste.addActionListener(action);
ddelete.addActionListener(action);
sselectall.addActionListener(action);
text.addMouseListener(newMouseAdapter(){
publicvoidmousePressed(MouseEventevent){
checkForTriggerEvent(event);
publicvoidmouseReleased(MouseEventevent){
}publicvoidcheckForTriggerEvent(MouseEventevent){
if(event.isPopupTrigger()){
filepopup.show(event.getComponent(),event.getX(),event.getY());
}}});
(4).打开、保存、复制、粘贴、撤销等功能事件响应实现:
//事件处理
ActionListeneraction=newActionListener()
{
publicvoidactionPerformed(ActionEvente)
{JMenuItemmi=(JMenuItem)e.getSource();
Stringid=mi.getText();
if(id.equals("
新建"
)){
Datedate=newDate();
text.setText(date.toString());
file=null;
}elseif(id.equals("
打开..."
if(file!
=null)
filechooser.setSelectedFile(file);
//为用户选择文件提供了一种简单的机制
intreturnVal=filechooser.showO