Java程序设计实验分析报告文本编辑器的设计与实现文档格式.docx

上传人:b****6 文档编号:18143367 上传时间:2022-12-13 格式:DOCX 页数:13 大小:63.77KB
下载 相关 举报
Java程序设计实验分析报告文本编辑器的设计与实现文档格式.docx_第1页
第1页 / 共13页
Java程序设计实验分析报告文本编辑器的设计与实现文档格式.docx_第2页
第2页 / 共13页
Java程序设计实验分析报告文本编辑器的设计与实现文档格式.docx_第3页
第3页 / 共13页
Java程序设计实验分析报告文本编辑器的设计与实现文档格式.docx_第4页
第4页 / 共13页
Java程序设计实验分析报告文本编辑器的设计与实现文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Java程序设计实验分析报告文本编辑器的设计与实现文档格式.docx

《Java程序设计实验分析报告文本编辑器的设计与实现文档格式.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验分析报告文本编辑器的设计与实现文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

Java程序设计实验分析报告文本编辑器的设计与实现文档格式.docx

JMenumenuEdit;

JMenumenuAbout;

JPopupMenupopUpMenu;

JTextAreatxt=null;

//编辑区

JLabellab=newJLabel("

未修改"

);

JFileChooserfileChooser=newJFileChooser();

FilesaveFileName=null,fileName=null;

publicMynote(Strings)

{

super(s);

createMenuBar();

//菜单栏

createContentPane();

//文本编辑区组件

setBounds(100,100,600,450);

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente)

{closeFile();

}});

setVisible(true);

}

publicvoidcreateMenuBar(){

JMenuBarmenuBar=newJMenuBar();

menuFile=newJMenu("

文件"

menuEdit=newJMenu("

编辑"

menuAbout=newJMenu("

关于"

menuBar.add(menuFile);

menuBar.add(menuEdit);

menuBar.add(menuAbout);

JMenuItemitemOpen=newJMenuItem("

打开"

menuFile.add(itemOpen);

itemOpen.addActionListener(this);

menuFile.addSeparator();

JMenuItemitemSave=newJMenuItem("

保存"

menuFile.add(itemSave);

itemSave.addActionListener(this);

JMenuItemitemSaveas=newJMenuItem("

另存为"

menuFile.add(itemSaveas);

itemSaveas.addActionListener(this);

JMenuItemitemQuit=newJMenuItem("

关闭"

menuFile.add(itemQuit);

itemQuit.addActionListener(this);

JMenuItemitemCut=newJMenuItem("

剪切"

menuEdit.add(itemCut);

itemCut.addActionListener(this);

JMenuItemitemCopy=newJMenuItem("

复制"

menuEdit.add(itemCopy);

itemCopy.addActionListener(this);

JMenuItemitemPaste=newJMenuItem("

粘贴"

menuEdit.add(itemPaste);

itemPaste.addActionListener(this);

JMenuItemitemAboutnote=newJMenuItem("

关于NotePad"

menuAbout.add(itemAboutnote);

itemAboutnote.addActionListener(this);

//右键菜单

JMenuItemCopyitem=newJMenuItem("

Copyitem.addActionListener(this);

JMenuItemCutitem=newJMenuItem("

Cutitem.addActionListener(this);

JMenuItemPasteitem=newJMenuItem("

Pasteitem.addActionListener(this);

popUpMenu=newJPopupMenu();

popUpMenu.add(Copyitem);

popUpMenu.add(Cutitem);

popUpMenu.add(Pasteitem);

//快捷键itemOpen.setAccelerator(KeyStroke.getKeyStroke('

O'

Event.CTRL_MASK,false));

itemSave.setAccelerator(KeyStroke.getKeyStroke('

S'

itemSaveas.setAccelerator(KeyStroke.getKeyStroke('

A'

itemQuit.setAccelerator(KeyStroke.getKeyStroke('

Q'

itemCut.setAccelerator(KeyStroke.getKeyStroke('

X'

itemCopy.setAccelerator(KeyStroke.getKeyStroke('

C'

itemPaste.setAccelerator(KeyStroke.getKeyStroke('

V'

setJMenuBar(menuBar);

privatebooleanisChanged()

if(lab.getText().equals("

))

returnfalse;

elsereturntrue;

publicvoidactionPerformed(ActionEvente)

intoption=-1;

if(e.getActionCommand().equals("

))option=0;

))option=1;

))option=2;

))option=3;

))option=4;

))option=5;

))option=6;

))option=7;

switch(option)

{

case0:

{

if(!

isChanged())

{open();

}

else

{intoption2=JOptionPane.showConfirmDialog

(this,"

文件已修改,是否保存?

"

"

保存文件?

JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE,null);

switch(option2)

{

caseJOptionPane.YES_OPTION:

saveFile();

//保存文件

break;

caseJOptionPane.NO_OPTION:

open();

}

break;

}

case1:

saveFile();

break;

case2:

saveFileAs();

case3:

closeFile();

case4:

Cut();

case5:

Copy();

case6:

Paste();

case7:

about();

default:

break;

}

}

publicvoidcreateContentPane()//文本编辑区组件

{

JScrollPanescrollPane;

//滑动条

txt=newJTextArea(10,30);

txt.setEditable(true);

txt.setFont(newFont("

宋体"

Font.PLAIN,18));

txt.setLineWrap(true);

scrollPane=newJScrollPane(txt);

add(scrollPane,BorderLayout.CENTER);

add(lab,BorderLayout.SOUTH);

txt.addKeyListener(newKeyAdapter(){

publicvoidkeyTyped(KeyEvente)

{lab.setText("

已修改"

});

txt.addMouseListener(newMouseAdapter(){

publicvoidmouseReleased(MouseEvente)

{

if(e.getButton()==MouseEvent.BUTTON3)

popUpMenu.show(e.getComponent(),e.getX(),e.getY());

publicvoidmouseClicked(MouseEvente)

if(e.getButton()==MouseEvent.BUTTON1)

popUpMenu.setVisible(false);

privatevoidopen()

intoption=fileChooser.showOpenDialog(this);

if(option==JFileChooser.APPROVE_OPTION)

{try

{//打开所选文件

BufferedReaderbuf=newBufferedReader(newFileReader(fileChooser.getSelectedFile()));

//设置文件标题

setTitle(fileChooser.getSelectedFile().toString());

//删除前一次文件

txt.setText("

//设置状态栏

lab.setText("

//取得系统相依的换行符

StringlineSeparator=System.getProperty("

line.separator"

//读取文件并附加至文字编辑区

Stringtext;

while((text=buf.readLine())!

=null)

{

txt.append(text);

txt.append(lineSeparator);

buf.close();

catch(IOExceptione)

JOptionPane.showMessageDialog

(this,e.toString(),"

打开文件失败"

JOptionPane.ERROR_MESSAGE);

}}

privatevoidsaveFile()

//从标题栏取得文件名称

Filefile=newFile(getTitle());

//若指定文件不存在

(file.exists()))

{saveFileAs();

{try

{//打开指定文件

BufferedWriterbuf=newBufferedWriter(newFileWriter(file));

//将文字编辑区的文字写入文件

buf.write(txt.getText());

buf.close();

//设置状态栏为未修改

lab.setText("

catch(IOExceptione)

JOptionPane.showMessageDialog

(this,e.toString(),"

写入文件失败"

}

privatevoidsaveFileAs()

{//显示对话框

intoption3=fileChooser.showSaveDialog(this);

//如果确认选择文件

if(option3==JFileChooser.APPROVE_OPTION)

{//取得选择的文件

Filefile=fileChooser.getSelectedFile();

//在标题栏上设置文件名称

setTitle(file.toString());

try

{//建立文件

file.createNewFile();

//进行文件保护

catch(IOExceptione)

{JOptionPane.showMessageDialog(this,e.toString(),"

无法建立文件"

privatevoidcloseFile()

//是否已保存文件

isChanged())dispose();

intoption=JOptionPane.showConfirmDialog

(this,"

文件已修改,是否保存?

JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE,null);

switch(option)

caseJOptionPane.YES_NO_OPTION:

dispose();

privatevoidCut()

txt.cut();

lab.setText("

popUpMenu.setVisible(false);

privatevoidCopy()

txt.copy();

privatevoidPaste()

txt.paste();

privatevoidabout()

//显示对话框

JOptionPane.showOptionDialog(this,"

程序名称\n"

+"

JNotePad\n"

+

"

简介:

\n"

一个简单的文字编辑器\n"

关于JNotePad"

JOptionPane.DEFAULT_OPTION,

JOptionPane.INFORMATION_MESSAGE,null,null,null);

publicstaticvoidmain(Stringargs[]){

newMynote("

陆庆庆0706550220"

程序有代表性的输出结果及结果分析:

这是其中的几个画面截图。

这段程序可以执行简单的文字编辑,包括:

打开,保存,另存为,

关闭,复制,粘贴,剪切和关于,同时可以右键菜单和有状态栏。

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

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

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