Java记事本程序设计综合实验报告 记事本Word格式文档下载.docx
- 文档编号:17245659
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:25
- 大小:320.77KB
Java记事本程序设计综合实验报告 记事本Word格式文档下载.docx
《Java记事本程序设计综合实验报告 记事本Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Java记事本程序设计综合实验报告 记事本Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
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.add(itemPasteR);
menu1.add(itemNew);
menu1.addSeparator();
menu1.add(itemOpen);
menu1.add(itemSave);
menu1.add(itemExit);
menu2.add(itemCopy);
menu2.addSeparator();
menu2.add(itemCut);
menu2.add(itemPaste);
menu2.add(itemSelectAll);
menu2.add(itemDel);
menu2.add(itemUndo);
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();
elseif(e.getSource()==itemRedo)
edit.redo();
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~"
帮助主题"
elseif(e.getSource()==itemNew)
if(Saved)text1.setText(null);
text1.setText(null);
elsetext1.setText(null);
elseif(e.getSource()==itemExit)
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)
您没有选择任何文件"
FileReaderfilein=null;
if(file1!
try
filein=newFileReader(file1);
Saved=true;
catch(FileNotFoundExceptionfe)
label2.setText("
FileNotFound"
return;
intreadchar;
while((readchar=filein.read())!
=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java记事本程序设计综合实验报告 记事本 Java 程序设计 综合 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)