Java记事本程序设计综合实验报告 记事本.docx

上传人:b****6 文档编号:4322212 上传时间:2022-11-29 格式:DOCX 页数:25 大小:320.77KB
下载 相关 举报
Java记事本程序设计综合实验报告 记事本.docx_第1页
第1页 / 共25页
Java记事本程序设计综合实验报告 记事本.docx_第2页
第2页 / 共25页
Java记事本程序设计综合实验报告 记事本.docx_第3页
第3页 / 共25页
Java记事本程序设计综合实验报告 记事本.docx_第4页
第4页 / 共25页
Java记事本程序设计综合实验报告 记事本.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

Java记事本程序设计综合实验报告 记事本.docx

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

Java记事本程序设计综合实验报告 记事本.docx

Java记事本程序设计综合实验报告记事本

华北科技学院计算机系

软件报告

 

课程名称Java程序设计A

实验学期2010至2011学年第一学期

学生所在系部管理系

年级X专业班级电商B09-X

学生姓名XXX学号XXXXXXXXXXXXXXXX

任课教师王养廷

实验成绩

 

计算机系制

《Java程序设计A》课程考试报告

开课实验室:

软件开发实验室年月日

实验题目

简易记事本软件

一、实验目的

a)掌握面向对象程序设计基本要素(封装、继承、多态)

b)掌握JAVA语言常用类包及其常用方法和JAVA语言基本语法

c)掌握基于AWT的图形用户界面设计

i.常用标准控件的使用,如标签、按钮、菜单、文本框、单选按钮、滚动条等。

ii.事件处理机制

d)掌握布局、对话框的使用

e)掌握发布JAVA应用程序

二、设备与环境

PC兼容机、Windows操作系统、JAVA集成开发环境。

三、实验内容

1.完成记事本的需求分析。

2.记事本的总体设计,列出主要的类和类间关系。

3.列出具体的实现代码。

4.写出程序的实现细节,主要得功能界面,实现说明。

5.写出总结和评价

四、实验结果及分析

1.需求分析

1.1系统功能分析

1.新建操作

用户可以根据需要,建立新的记事本文档,进行操作。

2.打开操作

用户在可以打开任何文本内容进行操作。

3.保存操作

用户在对文本操作进行以后,可以按照需求进行保存操作。

4.撤销操作

若文本内容不符合用户的需求,可以撤销当前的操作。

5.剪切操作

用户可以可按照需求,对需要的内容进行剪切,将其移植其他处。

6.复制操作

移植的内容可以进行复制,这样更方便用户修改相应内容。

7.粘贴操作

将要复制的内容进行粘贴。

8.删除操作

删除不需要的内容。

9.全选操作

全选内容方便用户进行相应的剪切,复制,粘贴等内容。

10.格式操作

用户可根据需求将文本内容进行字体设置。

11.退出操作

用户不需要进行任何操作时候,可以退出。

1.2设计目标

通过分析,主要实现如下目标:

(1)编写新建模块。

用户新建任何文本文档。

(2)编写打开模块。

用户可打开电脑中的任何文本文档。

(3)编写保存模块。

保存已操作的文本内容。

(4)编写退出模块。

退出记事本。

(5)编写撤销模块。

撤销当前编辑的文本内容。

(6)编写剪切模块。

将需要编辑的内容进行剪切。

(7)编写复制模块。

复制用户选中的内容。

(5)编写粘贴模块。

粘贴需要复制的内容。

(6)编写删除模块。

删除选中的文本内容。

(7)编写全选模块。

选中需要进行操作的文本内容。

(8)编写格式模块。

按照需求对文本内容进行相应设置。

2.软件设计

本应用软件是简单的记事本,其能实现文件的新建、打开、保存、退出,撤销、剪切、复制、粘贴、删除、全选,为实现这些功能,需要设置以下模块:

主模块如图2.1所示:

 

图1.1主模块

文件相关功能模块如图2.2所示:

图2.2实现文件功能的模块

文档编辑模块如图2.3所示:

 

图2.3文档编辑模块

3.程序代码

importjava.io.*;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.undo.*;

importjavax.swing.event.*;

importjavax.swing.text.*;

publicclasstestjsb

{

publicstaticvoidmain(String[]args)

{

testf=newtest();

f.setTitle("记事本");

//f.setLayout(newBorderLayout());/***问题?

***/

//f.pack();

/*try

{

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

//SwingUtilities.updateComponentTreeUI(f);//***什么意思?

**@//

}

catch(Exceptione){}*/

}

}

classtestextendsJFrameimplementsActionListener,MouseListener,UndoableEditListener,ItemListener,

WindowListener

{

privatestaticfinallongserialVersionUID=1L;

UndoableEditedit;

JFileChooserfileChooser;

JLabellabel2;

JMenuItemitemNew,itemOpen,itemSave,itemExit,itemCopy,itemPaste,itemSelectAll,itemCut,itemDel,itemAbout,

itemHelp,itemCopyR,itemPasteR,itemCutR,itemUndo,itemRedo;

JCheckBoxMenuItemitemWrap,Truncation;

JScrollPanescrollpane1;

JTextAreatext1;

JPopupMenupop;

booleanSaved;

test()

{

setFrame();

setMenu();

Saved=true;

text1=newJTextArea();

text1.setEditable(true);

scrollpane1=newJScrollPane(text1);

scrollpane1.setPreferredSize(newDimension(350,300));

scrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

label2=newJLabel("",JLabel.CENTER);

fileChooser=newJFileChooser("D:

\\");

add(scrollpane1,BorderLayout.CENTER);

add(label2,BorderLayout.SOUTH);

text1.setLineWrap(true);

text1.setWrapStyleWord(true);

setListener();

validate();

}

publicvoidsetMenu()

{

JMenuBarmenubar1=newJMenuBar();

JMenumenu1=newJMenu("文件(F)");

JMenumenu2=newJMenu("编辑(E)");

JMenumenu3=newJMenu("格式(O)");

JMenumenu4=newJMenu("帮助(H)");

itemNew=newJMenuItem("新建(N)");

itemNew.setMnemonic('N');

itemOpen=newJMenuItem("打开(O)...");

itemOpen.setMnemonic('O');

itemSave=newJMenuItem("保存(S)");

itemSave.setMnemonic('S');

itemExit=newJMenuItem("退出(X)");

itemExit.setMnemonic('X');

itemCopy=newJMenuItem("复制(C)");

itemCopy.setMnemonic('C');

itemCopyR=newJMenuItem("复制");

itemCut=newJMenuItem("剪切(T)");

itemCut.setMnemonic('T');

itemCutR=newJMenuItem("剪切");

itemPaste=newJMenuItem("粘贴(P)");

itemPaste.setMnemonic('P');

itemPasteR=newJMenuItem("粘贴");

itemSelectAll=newJMenuItem("全选(A)");

itemSelectAll.setMnemonic('A');

itemDel=newJMenuItem("删除(L)");

itemDel.setMnemonic('L');

itemUndo=newJMenuItem("撤销");

itemRedo=newJMenuItem("重做");

itemAbout=newJMenuItem("关于记事本(A)");

itemHelp=newJMenuItem("查看帮助(H)");

itemWrap=newJCheckBoxMenuItem("自动换行(W)",true);

Truncation=newJCheckBoxMenuItem("截断(F)",false);

itemNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));

itemOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));

itemSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));

itemCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));

itemCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));

itemPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));

itemSelectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));

itemWrap.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,InputEvent.CTRL_MASK));

pop=newJPopupMenu();

pop.add(itemCopyR);

pop.addSeparator();

pop.add(itemCutR);

pop.addSeparator();

pop.add(itemPasteR);

menu1.add(itemNew);

menu1.addSeparator();

menu1.add(itemOpen);

menu1.addSeparator();

menu1.add(itemSave);

menu1.addSeparator();

menu1.add(itemExit);

menu2.add(itemCopy);

menu2.addSeparator();

menu2.add(itemCut);

menu2.addSeparator();

menu2.add(itemPaste);

menu2.addSeparator();

menu2.add(itemSelectAll);

menu2.addSeparator();

menu2.add(itemDel);

menu2.addSeparator();

menu2.add(itemUndo);

menu2.addSeparator();

menu2.add(itemRedo);

menu3.add(itemWrap);

menu3.add(Truncation);

menu4.add(itemHelp);

menu4.addSeparator();

menu4.add(itemAbout);

menubar1.add(menu1);

menubar1.add(menu2);

menubar1.add(menu3);

menubar1.add(menu4);

setJMenuBar(menubar1);

updateMenuItem();

}

publicvoidsetFrame()

{

setLayout(newBorderLayout());

setResizable(true);

setVisible(true);

setLocation(120,120);

pack();

setSize(300,350);

}

publicvoidsetListener()

{

text1.addMouseListener(this);

itemNew.addActionListener(this);

itemOpen.addActionListener(this);

itemSave.addActionListener(this);

itemExit.addActionListener(this);

itemCopy.addActionListener(this);

itemCut.addActionListener(this);

itemPaste.addActionListener(this);

itemSelectAll.addActionListener(this);

itemDel.addActionListener(this);

itemCopyR.addActionListener(this);

itemCutR.addActionListener(this);

itemPasteR.addActionListener(this);

itemUndo.addActionListener(this);

itemRedo.addActionListener(this);

itemHelp.addActionListener(this);

itemAbout.addActionListener(this);

itemWrap.addItemListener(this);

Truncation.addItemListener(this);

text1.getDocument().addUndoableEditListener(this);

this.addWindowListener(this);

}

publicvoidwindowClosing(WindowEvente)

{

if(Saved)System.exit(0);

else

{

inti=JOptionPane.showConfirmDialog(null,"是否保存文件!

","提醒",JOptionPane.YES_NO_OPTION);

if(i==JOptionPane.YES_OPTION){savefile();System.exit(0);}

elseSystem.exit(0);

}

}

publicvoidundoableEditHappened(UndoableEditEvente)

{

edit=e.getEdit();

Saved=false;

updateMenuItem();

}

publicvoidupdateMenuItem()

{

if(edit!

=null)

{

itemUndo.setEnabled(edit.canUndo());

itemRedo.setEnabled(edit.canRedo());

itemUndo.setText(edit.getUndoPresentationName());

itemRedo.setText(edit.getRedoPresentationName());

}

else

{

itemUndo.setEnabled(false);

itemRedo.setEnabled(false);

itemUndo.setText("Undo");

itemRedo.setText("Redo");

}

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==itemCopy||e.getSource()==itemCopyR)

text1.copy();

elseif(e.getSource()==itemCut||e.getSource()==itemCutR)

text1.cut();

elseif(e.getSource()==itemPaste||e.getSource()==itemPasteR)

text1.paste();

elseif(e.getSource()==itemSelectAll)

text1.selectAll();

elseif(e.getSource()==itemDel)

{

intstart=text1.getSelectionStart();

intend=text1.getSelectionEnd();

text1.replaceRange("",start,end);

}

elseif(e.getSource()==itemUndo)

{

edit.undo();

updateMenuItem();

}

elseif(e.getSource()==itemRedo)

{

edit.redo();

updateMenuItem();

}

elseif(e.getSource()==itemAbout)

{

JOptionPane.showMessageDialog(this,

"记事本1.0\n(C)2011LOVEzfy,版权所有,违者必究O(∩_∩)O~","关于",

JOptionPane.INFORMATION_MESSAGE);

}

elseif(e.getSource()==itemHelp)

{

JOptionPane.showMessageDialog(this,

"这么简单的东西还用帮助么?

你真是一头蠢猪!

O(∩_∩)O~","帮助主题",

JOptionPane.INFORMATION_MESSAGE);

}

elseif(e.getSource()==itemNew)

{

if(Saved)text1.setText(null);

else

{

inti=JOptionPane.showConfirmDialog(null,"是否保存文件!

","提醒",JOptionPane.YES_NO_OPTION);

if(i==JOptionPane.YES_OPTION){savefile();text1.setText(null);}

elsetext1.setText(null);

}

}

elseif(e.getSource()==itemExit)

{

if(Saved)System.exit(0);

else

{

inti=JOptionPane.showConfirmDialog(null,"是否保存文件!

","提醒",JOptionPane.YES_NO_OPTION);

if(i==JOptionPane.YES_OPTION){savefile();System.exit(0);}

elseSystem.exit(0);

}

}

elseif(e.getSource()==itemOpen)

{

Filefile1=null;

intresult;

fileChooser.setApproveButtonText("确定");

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

result=fileChooser.showOpenDialog(this);

text1.setText("");

if(result==JFileChooser.APPROVE_OPTION)

{

file1=fileChooser.getSelectedFile();

label2.setText("您选择打开的文件名:

"+file1.getName());

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

}

elseif(result==JFileChooser.CANCEL_OPTION)

{

label2.setText("您没有选择任何文件");

}

FileReaderfilein=null;

if(file1!

=null)

{

try

{

filein=newFileReader(file1);

Saved=true;

}

catch(FileNotFoundExceptionfe)

{

label2.setText("FileNotFound");

return;

}

intreadchar;

try

{

while((readchar=filein.read())!

=

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

当前位置:首页 > 自然科学 > 化学

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

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