java做的简单记事本范文.docx

上传人:b****8 文档编号:9988093 上传时间:2023-02-07 格式:DOCX 页数:24 大小:22.28KB
下载 相关 举报
java做的简单记事本范文.docx_第1页
第1页 / 共24页
java做的简单记事本范文.docx_第2页
第2页 / 共24页
java做的简单记事本范文.docx_第3页
第3页 / 共24页
java做的简单记事本范文.docx_第4页
第4页 / 共24页
java做的简单记事本范文.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

java做的简单记事本范文.docx

《java做的简单记事本范文.docx》由会员分享,可在线阅读,更多相关《java做的简单记事本范文.docx(24页珍藏版)》请在冰豆网上搜索。

java做的简单记事本范文.docx

java做的简单记事本范文

 

JAVA实训————计事本

一、实训目的

java程序设计是计算机软件的专业核心课程,而且java也是当前软件市场上较流行和功能很好的一种软件开发语言。

经过这个学期的学习后,能不能把学习的知识综合串联起来,java的实训项目的制作可以有效的检验这一点。

进行综合项目实训可以练习java软件开发的环境和配置,能够把java的面向对象技术、数据结构、图形界面、线程、网络知识、小应用程序等知识运用到实践中去,从而更好地理解java的各项知识,达到能够应用自如的地步。

进行实训的同时还需要查阅大量的文档,可以锻炼同学的自学能力。

二、实训内容

每个同学完成一个小项目,小项目的选题可以从规定题目中,也可以自己定题目。

建议选做的题目如下:

1、画图软件。

要求:

能够使用菜单功能完成基本图形的绘制(画圆、直线等),能够画较复杂的图形(如房子),能够有橡皮擦、改变画笔粗细等功能。

2、记事本。

仿照windows下的记事本,要求:

能够读写文件,文件内容的复制、剪切和粘贴,能够设置字体的大小和颜色。

3、计算器。

仿照windows下的计算器能够完成基本的计算任务,能够完成平方、开方、求余等一些特殊的运算。

4、万年历。

要求:

能够查阅农历、阳历和星期。

5、拼图游戏。

能够完成拼图游戏,能够设置游戏的级别和时间,记录游戏用户的成绩。

6、扫雷游戏。

模仿windows下的扫雷游戏。

7、英汉词典。

要求:

能够进行英汉单词的互译,进行英语单词的记忆训练以及一些简单句子的翻译。

8、设计一个俄罗斯方块的游戏。

9、设计一个简单的聊天软件。

要求:

注册和登陆功能,客户端能够进行通信。

10、动态时钟的制作。

要求:

仿照手表制作一个时钟。

每个同学也可以自己选择一个题目,要求不能抄袭他人作品,独立完成任务。

三、课程设计项目内容和简介(在此填入项目名称和进行项目设计的背景及简单介绍)

四、系统环境(开发、运行的硬件环境和软件环境)

操作系统:

windows2000;

内存:

256M;

Cpu:

InterCeleron1G;

JDK版本:

1.5;

五、进度计划及执行情况

日期

任务安排

执行情况

2008-1-7

了解计事本的基本功能,并实现基本的

框架

基本框架搭建好了

功能实现

方法

进行了整个窗口的布局

调试结果

最后程序能正常运行

错误原因

分析

遇到的问题是:

在开始时,文本域控件JText没有滚动条

改正情况

经过查API函数。

在JScrollPane中添加文本域控件。

在将JScollPane解决了问题。

日期

任务安排

执行情况

2007-1-8

实现文件的打开和保存功能

对文件进行正确的读写

功能实现

方法

文件的打开和保存功能

调试结果

对文件可以进行正确的读写。

错误原因

分析

刚开始进行文件读写操作时,用的是字节流,读出来的都是乱码。

数据的流使用错了。

改正情况

使用了字符流解决了问题

日期

任务安排

执行情况

2008-1-9

实现字体风格和小的设置

可以对字体进行正确设置

功能实现

方法

字体名是调用系统的,字号用的是8-99号字,颜色调用java的颜色面板

调试结果

可以对字体的字体,字号,还有字体颜色进行相关设置,新建文件后,原来的字体颜色还保留着

错误原因

分析

在新建时没有进行颜色的设置

改正情况

在新建后可以解决该问题

日期

任务安排

执行情况

2008-1-10

实现查找和替换功能

可以正确进行查找和替换

功能实现

方法

应用的是String常用的几个方法

调试结果

可以进行查找和替换还有点功能上的欠缺

错误原因

分析

查找到到最后一个时。

不能返回重新查找

改正情况

有待改进

日期

任务安排

执行情况

2008-1-11

实现字体风格的保存,保证打开后,能保持原来的风格。

功能已经实现

功能实现

方法

将字体风格保存到另一个文件中,打开文本时,也同时读取该文件,重新进行字体的设置。

调试结果

遇到过的一次错误是,颜色不能正常显示,改进过,后来程序可以实现文本打开后字体维持原状。

错误原因

分析

错误的使用颜色的函数

改正情况

已经没有问题,可以正常显示颜色。

六、程序清单

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjava.awt.GraphicsEnvironment;

importjavax.swing.*;

importjava.util.*;

importjava.awt.Graphics;

classMyTextPadextendsFrameimplementsActionListener

{

JTextAreatext;

JScrollPanejsp;

PopupMenupopm;

Datedate=newDate();

Stringstr="";

Dialogd,About;

Choicec1,c2,c3;

Buttonbtn1,btn2;

StringStr1="宋体",Str2="普通",Str3="15";

inttemp=0;

intRed=0,Green=0,Blue=0;

LabellFind=newLabel("查找字符串:

");

LabellReplace=newLabel("替换字符串:

");

TextFieldtFind=newTextField(10);

TextFieldtReplace=newTextField(10);

ButtonbFind=newButton("查找");

ButtonbReplace=newButton("替换");

ButtonbReplaceAll=newButton("替换所有");

Dialogdialog;

DialogfindD;

publicMyTextPad(Stringstr)

{

super(str);

text=newJTextArea();

text.setFont(newFont("宋体",0,15));

jsp=newJScrollPane(text);

add("Center",jsp);

findD=newDialog(this);

addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

dispose();

}

}

);

d=newDialog(this,"字体选择");

d.setBounds(150,150,320,200);

findD.addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

findD.setVisible(false);

}

}

);

d.addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

d.setVisible(false);

}

}

);

c1=newChoice();c2=newChoice();c3=newChoice();

GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();

StringfontName[]=ge.getAvailableFontFamilyNames();

for(inti=0;i

{

c1.add(fontName[i]);

}

c2.add("粗体");

c2.add("斜体");

c2.add("粗体与斜体");

c2.add("普通");

for(inti=8;i<100;i++)

{

c3.add(""+i);

}

Panelp1=newPanel();

Panelp2=newPanel();

p1.add(c1);

p1.add(c2);

p1.add(c3);

btn1=newButton("确定");

btn2=newButton("取消");

d.setLayout(newGridLayout(5,3));

d.add(p1);

p2.add(btn1);

btn1.addActionListener(this);

btn2.addActionListener(this);

p2.add(btn2);

d.add(p2);

About=newDialog(this,"关于");

About.addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

About.setVisible(false);

}

}

);

About.setBounds(300,300,150,150);

About.add(newLabel("蒋俊涛的计事体1.0版本"));

Menumn=newMenu("文件");

MenuItemmiNewFile=newMenuItem("新建",newMenuShortcut(KeyEvent.VK_N));

MenuItemmiOpenFile=newMenuItem("打开",newMenuShortcut(KeyEvent.VK_O));

MenuItemmiSaveFile=newMenuItem("保存",newMenuShortcut(KeyEvent.VK_S));

MenuItemmiExit=newMenuItem("退出",newMenuShortcut(KeyEvent.VK_E));

mn.add(miNewFile);

mn.add(miOpenFile);

mn.add(miSaveFile);

mn.addSeparator();

mn.add(miExit);

miNewFile.addActionListener(this);

miOpenFile.addActionListener(this);

miSaveFile.addActionListener(this);

miExit.addActionListener(this);

Menumn1=newMenu("编辑");

MenuItemmiSelectAll=newMenuItem("全选",newMenuShortcut(KeyEvent.VK_P));

MenuItemmiClear=newMenuItem("清空",newMenuShortcut(KeyEvent.VK_S));

MenuItemmiCopy=newMenuItem("复制",newMenuShortcut(KeyEvent.VK_C));

MenuItemmiPaste=newMenuItem("粘贴",newMenuShortcut(KeyEvent.VK_V));

MenuItemmiCut=newMenuItem("剪切",newMenuShortcut(KeyEvent.VK_T));

MenuItemmiFind=newMenuItem("查找",newMenuShortcut(KeyEvent.VK_D));

MenuItemmiReplace=newMenuItem("替换",newMenuShortcut(KeyEvent.VK_R));

MenuItemmiAuto=newMenuItem("自动换行");

miAuto.addActionListener(this);

mn1.add(miSelectAll);

mn1.add(miClear);

mn1.add(miCopy);

mn1.add(miPaste);

mn1.add(miCut);

mn1.addSeparator();

mn1.add(miFind);

mn1.add(miReplace);

mn1.add(miAuto);

miSelectAll.addActionListener(this);

miClear.addActionListener(this);

miCopy.addActionListener(this);

miPaste.addActionListener(this);

miCut.addActionListener(this);

miFind.addActionListener(this);

miReplace.addActionListener(this);

Menumn2=newMenu("格式");

MenuItemmiFont=newMenuItem("字体",newMenuShortcut(KeyEvent.VK_F));

MenuItemmiColor=newMenuItem("颜色选择",newMenuShortcut(KeyEvent.VK_K));

MenuItemmiTime=newMenuItem("插入时间",newMenuShortcut(KeyEvent.VK_T));

miFont.addActionListener(this);

miColor.addActionListener(this);

miTime.addActionListener(this);

mn2.add(miFont);

mn2.add(miColor);

mn2.add(miTime);

Menumn3=newMenu("帮助");

MenuItemmiAbout=newMenuItem("关于",newMenuShortcut(KeyEvent.VK_A));

miAbout.addActionListener(this);

mn3.add(miAbout);

FileDialogfindDlg=newFileDialog(this);

Panelp5=newPanel();

Panelp6=newPanel();

Panelp7=newPanel();p7.setLayout(newGridLayout(1,2,30,30));

p5.add(lFind);p5.add(tFind);p5.add(bFind);tFind.addActionListener(this);bFind.addActionListener(this);

p6.add(lReplace);p6.add(tReplace);p7.add(bReplace);p7.add(bReplaceAll);p6.add(p7);

tReplace.addActionListener(this);bReplace.addActionListener(this);bReplaceAll.addActionListener(this);

findD.setLayout(newGridLayout(2,1,10,10));

findD.setResizable(false);

findD.add(p5);

findD.add(p6);

findD.setBounds(100,100,260,190);

//弹出PopupMenu

popm=newPopupMenu();

MenuItemOpenFile=newMenuItem("打开");

MenuItemSaveFile=newMenuItem("保存");

MenuItemSelectAll=newMenuItem("全选");

MenuItemCopy=newMenuItem("复制");

MenuItemPaste=newMenuItem("粘贴");

MenuItemCut=newMenuItem("剪切");

OpenFile.addActionListener(this);

SaveFile.addActionListener(this);

SelectAll.addActionListener(this);

Copy.addActionListener(this);

Paste.addActionListener(this);

Cut.addActionListener(this);

popm.add(OpenFile);

popm.add(SaveFile);

popm.add(SelectAll);

popm.add(Copy);

popm.add(Paste);

popm.add(Cut);

text.add(popm);

text.addMouseListener(newMyMouseEvent(this));

MenuBarBar=newMenuBar();

Bar.add(mn);

Bar.add(mn1);

Bar.add(mn2);

Bar.add(mn3);

setMenuBar(Bar);

setSize(800,600);

setVisible(true);

}

classMyMouseEventextendsMouseAdapter

{

MyTextPadmyParentFrame;

MyMouseEvent(MyTextPadmyf)

{

myParentFrame=myf;

}

publicvoidmouseReleased(MouseEvente)

{

if(e.isPopupTrigger())

myParentFrame.popm.show((Component)e.getSource(),e.getX(),e.getY());

}

}

publicvoidactionPerformed(ActionEvente)

{

StringstrCmd=e.getActionCommand();

if(strCmd.equals("新建"))

{

text.setFont(newFont(Str1,Font.PLAIN,15));

text.setForeground(Color.black);

text.setText("");

}

try

{

if(strCmd.equals("打开"))

{

openFile();

}

if(strCmd.equals("保存"))

{

saveFile();

}

}catch(IOExceptione1){}

if(strCmd.equals("退出"))

{

System.exit(0);

}

if(strCmd.equals("全选"))

{

text.selectAll();

}

if(strCmd.equals("清空"))

{

text.setText("");

}

if(strCmd.equals("复制"))

{

str=text.getSelectedText();

}

if(strCmd.equals("粘贴"))

{

text.insert(str,text.getCaretPosition());

}

if(strCmd.equals("剪切"))

{

str=text.getSelectedText();

text.replaceRange("",text.getSelectionStart(),text.getSelectionEnd());

}

if(strCmd.equals("字体"))

{

d.setVisible(true);

}

if(strCmd.equals("颜色选择"))

{

Colorc=JColorChooser.showDialog(this,"颜色选择",Color.black);

text.setForeground(c);

Red=c.getRed();

Green=c.getGreen();

Blue=c.getBlue();

}

if(e.getSource()==tFind||e.getSource()==bFind)

{

find();

return;

}

if(e.getSource()==tReplace||e.getSource()==bReplace)

{

text.requestFocus();

Strings1=tReplace.getText();

if(text.getSelectedText().equals(tFind.getText()))

{

intstart=text.getSelectionStart();

text.replaceRange(s1,text.getSelectionStart(),text.getSelectionEnd());

text.select(start,start+s1.length());

}

else

find();

return;

}

if(e.getSource()==bReplaceAll)

{

text.requestFocus();

Strings1=tReplace.getText();

str=text.getText();

StringstrFind=tFind.getText();

intstart=0;

intend=str.length();

intlen=strFind.length();

intcount=0;

if(start<=end-len)

{

for(;start<=end-len;start++){

if(str.substring(start,start+len).equals(strFind)){

count++;

text.replaceRange(s1,start,start+len);

text.select(start,start+s1.length());

}

}

}

if

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

当前位置:首页 > 农林牧渔 > 林学

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

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