Java记事本电子档.docx

上传人:b****6 文档编号:8998427 上传时间:2023-02-02 格式:DOCX 页数:26 大小:81.93KB
下载 相关 举报
Java记事本电子档.docx_第1页
第1页 / 共26页
Java记事本电子档.docx_第2页
第2页 / 共26页
Java记事本电子档.docx_第3页
第3页 / 共26页
Java记事本电子档.docx_第4页
第4页 / 共26页
Java记事本电子档.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

Java记事本电子档.docx

《Java记事本电子档.docx》由会员分享,可在线阅读,更多相关《Java记事本电子档.docx(26页珍藏版)》请在冰豆网上搜索。

Java记事本电子档.docx

Java记事本电子档

前言

记事本是一种简单的文字处理软件,它虽然没有Word文档强大的文字编辑以及图片处理功能,但是“记事本”却拥有一个Word不可能拥有的优点:

打开速度快,文件小。

我相信对于这一点大家一定是深有感触地,一点就打开;同样的文本文件用Word保存和用记事本保存的文件大小就大不相同。

所以,记事本在计算机应用中是必不可少的。

 

第一章开发背景

1.1系统设计目的

1)设计一个简单的记事本程序,可以实现以下功能:

1:

文件的新建,打开,保存和另存

2:

对文件的编辑,如添加日期,简单的加密处理等等

3:

对文档格式的编辑,包括自动换行和修改字体颜色

4:

在新建、打开、关闭文档时,判断现有文档是否已被修改。

若无修改则继续操作,若有修改则先询问用户是否保存

2)通过这次程序设计

1:

提高对Java语言设计的掌握能力

2:

理论联系实际,进一步提高软件开发技术;

3:

培养独立思考,分析需求的能力

1.2编写工具

本程序是用了JBuilder,实现:

Jbuilder简介:

JBuilder是Borland公司开发的针对java的开发工具,使用JBuilder将可以快速,有效的开发各类java应用,它使用的JDK与sun公司标准的JDK不同,它经过了较多的修改,以便开发人员能够像开发Delphi应用那样开发java应用。

  JBuilder的核心有一部分采用了VCL技术,使得程序的条理非常清晰,就算是初学者,也能完整的看完整个代码。

JBuilder另一个特点是简化了团队合作,它采用的互联网工作室技术使不同地区,甚至不同国家的人联合开发一个项目成为了可能。

  简单介绍一下Jbuilder的特点:

  1:

Jbuilder支持最新的Java技术,包括Applets、JSP/Servlets、JavaBean以及EJB(EnterpriseJavaBeans)的应用。

  2:

用户可以自动地生成基于后端数据库表的EJBJava类,Jbuilder同时还简化了EJB的自动部署功能.此外它还支持CORBA,相应的向导程序有助于用户全面地管理IDL(分布应用程序所必需的接口定义语言InterfaceDefinitionLanguage)和控制远程对象。

  3:

Jbuilder支持各种应用服务器。

Jbuilder与InpriseApplicationServer紧密集成,同时支持WebLogicServer,支持EJB1.1和EJB2.0,可以快速开发J2EE的电子商务应用。

  4:

Jbuilder能用Servlet和JSP开发和调试动态Web应用。

  5:

利用Jbuilder可创建(没有专有代码和标记)纯Java2应用。

由于Jbuilder是用纯Java语言编写的,其代码不含任何专属代码和标记,它支持最新的Java标准。

6:

Jbuilder拥有专业化的图形调试介面,支持远程调试和多线程调试,调试器支持各种JDK版本,包括J2ME/J2SE/J2EE。

JBuilder环境开发程序方便,它是纯的Java开发环境,适合企业的J2EE开发;缺点是往往一开始人们难于把握整个程序各部分之间的关系,对机器的硬件要求较高,比较吃内存,这时运行速度显得较慢。

 

2.2源程序主体内容

Application1.java

packageapp;

importjava.awt.Toolkit;

importjavax.swing.SwingUtilities;

importjavax.swing.UIManager;

importjava.awt.Dimension;

/**

*

Title:

*

*

Description:

*

*

Copyright:

Copyright(c)2007

*

*

Company:

*

*@authornotattributable

*@version1.0

*/

publicclassApplication1{

booleanpackFrame=false;

/**

*Constructandshowtheapplication.

*/

publicApplication1(){

Frame1frame=newFrame1();

//Validateframesthathavepresetsizes

//Packframesthathaveusefulpreferredsizeinfo,e.g.fromtheirlayout

if(packFrame){

frame.pack();

}else{

frame.validate();

}

//Centerthewindow

DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();

DimensionframeSize=frame.getSize();

if(frameSize.height>screenSize.height){

frameSize.height=screenSize.height;

}

if(frameSize.width>screenSize.width){

frameSize.width=screenSize.width;

}

frame.setLocation((screenSize.width-frameSize.width)/2,

(screenSize.height-frameSize.height)/2);

frame.setVisible(true);

}

/**

*Applicationentrypoint.

*

*@paramargsString[]

*/

publicstaticvoidmain(String[]args){

SwingUtilities.invokeLater(newRunnable(){

publicvoidrun(){

try{

UIManager.setLookAndFeel(UIManager.

getSystemLookAndFeelClassName());

}catch(Exceptionexception){

exception.printStackTrace();

}

newApplication1();

}

});

}

}

Fram1.java

packageapp;

importjava.awt.Dimension;

importjavax.swing.JFrame;

importjavax.swing.JPanel;

importjavax.swing.JFileChooser;

importjavax.swing.JColorChooser;

importjavax.swing.JMenuBar;

importjavax.swing.JTextArea;

importjavax.swing.JMenu;

importjavax.swing.JMenuItem;

importjava.awt.event.ActionEvent;

importjava.awt.event.WindowEvent;

importjava.awt.event.ActionListener;

importjava.awt.GridLayout;

importjava.awt.Color;

importjavax.swing.JOptionPane;

importjava.io.*;

importjavax.swing.JCheckBoxMenuItem;

importjavax.swing.JScrollPane;

importjava.text.SimpleDateFormat;

importjava.awt.*;

importjava.util.Date;

importjava.awt.event.WindowAdapter;

/**

*

Title:

*

*

Description:

*

*

Copyright:

Copyright(c)2007

*

*

Company:

*

*@authornotattributable

*@version1.0

*/

publicclassFrame1extendsJFrame{

JPanelcontentPane;

JFileChooserjFileChooser1=newJFileChooser();

JMenuBarjMenuBar1=newJMenuBar();

JTextAreaText=newJTextArea();

JMenujMenu1=newJMenu();

JMenuItemjMenuItem1=newJMenuItem();

JMenuItemjMenuItem2=newJMenuItem();

JMenujMenu2=newJMenu();

JMenuItemjMenuItem3=newJMenuItem();

JMenuItemjMenuItem4=newJMenuItem();

JMenuItemjMenuItem7=newJMenuItem();

JMenujMenu3=newJMenu();

JMenuItemjMenuItem8=newJMenuItem();

JMenuItemjMenuItem9=newJMenuItem();

JOptionPanejOptionPane1=newJOptionPane();

StringBuffera=newStringBuffer();

StringBufferreadFile=newStringBuffer();

JMenuItemjMenuItem10=newJMenuItem();

StringoldValue;//存放原来的文本

FilesaveFileName=null,fileName=null;//保存的文件名

booleanisNewFile=true;//判断是否新文件(

FilecurrentFile;//当前文件名

JMenujMenu4=newJMenu();

JMenujMenu5=newJMenu();

JMenuItemjMenuItem11=newJMenuItem();

JMenuItemjMenuItem6=newJMenuItem();

JMenuItemjMenuItem12=newJMenuItem();

JMenujMenu6=newJMenu();

JMenujMenu7=newJMenu();

JCheckBoxMenuItemjCheckBoxMenuItem1=newJCheckBoxMenuItem();

GridLayoutgridLayout1=newGridLayout();

JMenujMenu8=newJMenu();

JMenuItemjMenuItem5=newJMenuItem();

publicFrame1(){

try{

setDefaultCloseOperation(EXIT_ON_CLOSE);

jbInit();

}catch(Exceptionexception){

exception.printStackTrace();

}

}

publicvoidsaveFile(){

try{

FileWriterfw=newFileWriter(saveFileName);

fw.write(Text.getText());

fw.close();

}catch(Exceptione){

}

}

/**

*Componentinitialization.

*

*@throwsjava.lang.Exception

*/

privatevoidjbInit()throwsException{

contentPane=(JPanel)getContentPane();

this.setJMenuBar(jMenuBar1);

setSize(newDimension(542,402));

setTitle("记事本");

this.addWindowListener(newFrame1_this_windowAdapter(this));

jMenu1.setText("文件");

jMenuItem1.setText("打开");

jMenuItem1.addActionListener(newFrame1_jMenuItem1_actionAdapter(this));

jMenuItem2.setText("保存");

jMenuItem2.addActionListener(newFrame1_jMenuItem2_actionAdapter(this));

jMenu2.setText("编辑");

jMenuItem3.addActionListener(newFrame1_jMenuItem3_actionAdapter(this));

jMenuItem3.setText("新建");

jMenuItem4.setText("退出");

jMenuItem4.addActionListener(newFrame1_jMenuItem4_actionAdapter(this));

jMenuItem7.setText("日期/时间");

jMenuItem7.addActionListener(newFrame1_jMenuItem7_actionAdapter(this));

jMenu3.setText("可编辑");

jMenuItem8.setText("锁定");

jMenuItem8.addActionListener(newFrame1_jMenuItem8_actionAdapter(this));

jMenuItem9.setText("解锁");

jMenuItem9.addActionListener(newFrame1_jMenuItem9_actionAdapter(this));

jMenuItem10.setText("另存为");

jMenuItem10.addActionListener(newFrame1_jMenuItem10_actionAdapter(this));

jMenu4.setText("格式");

jMenu5.setText("颜色");

jMenuItem11.setText("背景颜色");

jMenuItem11.addActionListener(newFrame1_jMenuItem11_actionAdapter(this));

jMenuItem6.setText("字体颜色");

jMenuItem6.addActionListener(newFrame1_jMenuItem6_actionAdapter(this));

jMenu6.setText("自动换行");

jCheckBoxMenuItem1.setText("自动换行");

jCheckBoxMenuItem1.addActionListener(new

Frame1_jCheckBoxMenuItem1_actionAdapter(this));

contentPane.setLayout(gridLayout1);

jMenu8.setText("帮助");

jMenuItem5.setText("关于");

jMenuItem5.addActionListener(newFrame1_jMenuItem5_actionAdapter(this));

jMenuBar1.add(jMenu1);

jMenuBar1.add(jMenu2);

jMenuBar1.add(jMenu4);

jMenuBar1.add(jMenu8);

jMenu1.add(jMenuItem3);

jMenu1.add(jMenuItem1);

jMenu1.add(jMenuItem2);

jMenu1.add(jMenuItem10);

jMenu1.add(jMenuItem4);

jMenu2.add(jMenuItem7);

jMenu2.add(jMenu3);

jMenu3.add(jMenuItem8);

jMenu3.add(jMenuItem9);

jMenu4.addSeparator();

jMenu4.add(jCheckBoxMenuItem1);

jMenu4.add(jMenu5);

jMenu5.add(jMenuItem6);

jMenu5.add(jMenuItem11);

contentPane.add(Text,null);

contentPane.add(newJScrollPane(Text));

jMenu8.add(jMenuItem5);

oldValue=Text.getText();

}

publicvoidjMenuItem1_actionPerformed(ActionEvente){//打开功能

StringcurrentValue=Text.getText();//得到文本内容

booleanisTextChange=(currentValue.equals(oldValue))?

false:

true;//判断文本是否有改动

if(isTextChange){

intsaveChoose=JOptionPane.showConfirmDialog(this,

"文件尚未保存。

是否保存?

","提示",JOptionPane.YES_NO_CANCEL_OPTION);

if(saveChoose==JOptionPane.YES_OPTION){

JFileChooserfileChooser=newJFileChooser();

fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

fileChooser.setApproveButtonText("确定");

fileChooser.setDialogTitle("另存为");

intresult=fileChooser.showSaveDialog(this);

if(result==JFileChooser.CANCEL_OPTION){

return;

}

saveFileName=fileChooser.getSelectedFile();

if(saveFileName==null||saveFileName.getName().equals(""))

JOptionPane.showMessageDialog(this,"不合法的文件名","不合法的文件名",

JOptionPane.ERROR_MESSAGE);

else{

saveFile();

isNewFile=false;

currentFile=saveFileName;

oldValue=Text.getText();

this.setTitle(saveFileName.getName()+"-记事本");

}

}elseif(saveChoose==JOptionPane.NO_OPTION){

Stringstr=null;

JFileChooserfileChooser=newJFileChooser();

fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

fileChooser.setApproveButtonText("确定");

fileChooser.setDialogTitle("打开文件");

intresult=fileChooser.showOpenDialog(this);

if(result==JFileChooser.CANCEL_OPTION){

return;

}

fileName=fileChooser.getSelectedFile();

if(fileName==null||fileName.getName().equals(""))

JOptionPane.showMessageDialog(this,"不合法的文件名","不合法的文件名",

JOptionPane.ERROR_MESSAGE);

else{

try{

FileReaderfr=newFileReader(fileName);

BufferedReaderbfr=newBufferedReader(fr);

Text.setText("");

while((str=bfr.readLine())!

=null){//每次读取一行,直到文件结束

Text.append(str+"\15\12");

}//endwhile

this.setTitle(fileName.getName()+"-记事本");

fr.close();

isNewFile=false;

currentFile=fileName;

oldValue=Text.getText();

}catch(IOExceptionioException){

}

}

}else{

return;

}

}

else{

Stringstr=null;

JFileChooserfileChooser=newJFileChooser();

fil

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

当前位置:首页 > 高等教育 > 农学

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

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