Java课程设计报告记事本.docx

上传人:b****2 文档编号:2234866 上传时间:2022-10-28 格式:DOCX 页数:31 大小:654.50KB
下载 相关 举报
Java课程设计报告记事本.docx_第1页
第1页 / 共31页
Java课程设计报告记事本.docx_第2页
第2页 / 共31页
Java课程设计报告记事本.docx_第3页
第3页 / 共31页
Java课程设计报告记事本.docx_第4页
第4页 / 共31页
Java课程设计报告记事本.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

Java课程设计报告记事本.docx

《Java课程设计报告记事本.docx》由会员分享,可在线阅读,更多相关《Java课程设计报告记事本.docx(31页珍藏版)》请在冰豆网上搜索。

Java课程设计报告记事本.docx

Java课程设计报告记事本

 

Java课程设计报告

 

专业:

班级:

姓名:

学号:

系部:

目录2

正文3

一、设计内容和要求3

二、设计思路4

五、设计体会小结……………………………………………………21

 

正文

Java文档编辑器是一个允许修改DefaultStyledDocument对象的应用程序。

这些对象用于管理Swing文本组件(例如JTextPane和JTextArea)的内容。

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(){}

publicvoidrun(){

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.addSeparator();

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){

checkForTriggerEvent(event);

}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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1