华北科技学院Java程序设计B实验报告Word格式.docx
- 文档编号:20471608
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:15
- 大小:72.20KB
华北科技学院Java程序设计B实验报告Word格式.docx
《华北科技学院Java程序设计B实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《华北科技学院Java程序设计B实验报告Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
2.掌握Java语言的程序设计方法。
3.掌握基于Swing图形用户界面设计的思想。
4.理论联系实际,提高软件开发技术。
5.培养学生分析,解决问题的能力。
二、设备与环境
硬件:
多媒体计算机
软件:
Windows2000以上的操作系统、JDK开发包、集成开发环境
三、实验内容
总体要求:
程序功能基本完成,用户界面友好,代码的可维护性和可扩展性较好,最好包括必要的注释和相应的文档。
具体要求:
基本的文本录入,字符修改,删除,换行,粘贴,复制,剪切等功能,主要包括:
1.菜单栏设计及功能实现:
菜单栏主要包括文件、编辑、格式、帮助等常见菜单。
其中文件菜单有新建、打开、保存、另存为、退出等功能;
编辑菜单有剪切、复制、粘贴、等功能;
格式菜单含有对文字字体、字型、字号及颜色等的设置功能,根据情况可在编辑菜单添加查找和查找替换功能。
2.编辑区设计:
对文本的编辑处理区。
3.工具栏设计:
可根据需要增加该项功能。
4.其他功能设计。
四、实验结果及分析
1.主界面的设计与实现
①整个界面共包括3部分
分为:
菜单栏、工具栏和及文本编辑区
如图1所示:
②菜单的设计
本程序共设计3个菜单,分别是文件菜单、编辑菜单和窗口菜单
1、文件菜单实现了打开、保存、另存为、关闭功能。
2、编辑菜单实现了粘贴、复制、剪切功能。
3、窗口菜单实现了平铺、折叠功能。
各个菜单的功能
如图2所示:
③工具栏的设计
快捷按钮实现了文件的打开、保存、另存为
如图3所示:
②编辑区设计
编辑区采用初始化为(500,500)大小的显示区域
实现了在文本区域鼠标右击弹出快捷菜单的功能
如图4所示:
2.文件菜单中各项功能的实现
①软件初始设计
publicclassnoteextendsJFrameimplementsActionListener,MouseListener{
privatestaticfinallongserialVersionUID=1L;
Filefile=newFile("
./"
);
JTextAreajta=newJTextArea();
Stringfilename;
JFileChooserjFileChooser=newJFileChooser();
JColorChooserjcolor=newJColorChooser();
JMenuBarmbar;
JMenuMf,fm1,fm2;
JMenuItemMfda,Mfbc,Mflcw,Mfgb;
JMenuItemzt,fz,jq,pp,zd;
JToolBartoolbar;
JButtont1,t2,t3;
ImageIconimg1,img2,img3;
JPopupMenupop;
JMenuItemcopy,paste,cut;
publicnote(){
jFileChooser.setCurrentDirectory(newFile("
."
));
getContentPane().add(newJScrollPane(jta),BorderLayout.CENTER);
setTitle("
文本文件阅读器"
mbar=newJMenuBar();
setJMenuBar(mbar);
Mf=newJMenu("
文件(F)"
fm1=newJMenu("
编辑(E)"
fm2=newJMenu("
窗口(W)"
zt=newJMenuItem("
粘贴(o)"
fz=newJMenuItem("
复制"
jq=newJMenuItem("
剪切"
fm1.add(zt);
fm1.add(fz);
fm1.add(jq);
zt.addActionListener(this);
fz.addActionListener(this);
jq.addActionListener(this);
pp=newJMenuItem("
平铺"
zd=newJMenuItem("
折叠"
fm2.add(pp);
fm2.add(zd);
pp.addActionListener(this);
zd.addActionListener(this);
Mfda=newJMenuItem("
打开(o)"
Mfbc=newJMenuItem("
保存"
Mflcw=newJMenuItem("
另存为"
Mfgb=newJMenuItem("
关闭"
Mf.add(Mfda);
Mf.add(Mfbc);
Mf.add(Mflcw);
Mf.add(Mfgb);
Mfda.addActionListener(this);
Mfbc.addActionListener(this);
Mflcw.addActionListener(this);
Mfgb.addActionListener(this);
Mf.setMnemonic('
F'
Mfda.setMnemonic('
o'
mbar.add(Mf);
mbar.add(fm1);
mbar.add(fm2);
toolbar=newJToolBar("
浮动工具栏"
t1=newJButton();
t2=newJButton();
t3=newJButton();
img1=newImageIcon("
d:
\\p1.jpg"
img2=newImageIcon("
./p2.jpg"
img3=newImageIcon("
./p3.jpg"
t1.setIcon(img1);
t2.setIcon(img2);
t3.setIcon(img3);
t1.setToolTipText("
打开"
t2.setToolTipText("
t3.setToolTipText("
toolbar.add(t1);
toolbar.add(t2);
toolbar.add(t3);
add(toolbar,BorderLayout.NORTH);
t1.addActionListener(this);
//加入工具栏操作事件的初始
t2.addActionListener(this);
t3.addActionListener(this);
pop=newJPopupMenu();
copy=newJMenuItem("
cut=newJMenuItem("
paste=newJMenuItem("
粘贴"
pop.add(copy);
pop.add(cut);
pop.add(paste);
jta.addMouseListener(this);
cut.addActionListener(this);
//加入菜单编辑操作事件的初始
copy.addActionListener(this);
paste.addActionListener(this);
setSize(500,500);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
②菜单及鼠标实现
publicvoidactionPerformed(ActionEvente){//在源代码的基础上加入了其他
if(e.getSource()==Mfda||e.getSource()==t1)//操作的代码
open();
if(e.getSource()==Mfbc||e.getSource()==t2)
save();
if(e.getSource()==Mflcw||e.getSource()==t3)
saveto();
elseif(e.getSource()==copy||e.getSource()==fz)
jta.copy();
elseif(e.getSource()==cut||e.getSource()==jq)
jta.cut();
elseif(e.getSource()==paste||e.getSource()==zt)
jta.paste();
elseif(e.getSource()==Mfgb)
System.exit(0);
③打开的实现
privatevoidopen(){
if(jFileChooser.showOpenDialog(this)==JFileChooser.APPROVE_OPTION){
file=jFileChooser.getSelectedFile();
filename=file.getName();
try{
FileInputStreamfin=newFileInputStream(file);
BufferedInputStreamin=newBufferedInputStream(fin);
byte[]b=newbyte[in.available()];
in.read(b,0,b.length);
jta.setText(newString(b,0,b.length));
in.close();
}
catch(IOExceptionex){
jta.setText("
打开文件错误"
+file.getName());
}
④另存为的实现
privatevoidsaveto(){
if(jFileChooser.showSaveDialog(this)==JFileChooser.APPROVE_OPTION){
FileOutputStreamfos=newFileOutputStream(file);
BufferedOutputStreamout=newBufferedOutputStream(fos);
Stringstr=jta.getText();
byteb[]=str.getBytes();
out.write(b);
out.close();
catch(IOExceptionex){
⑤保存的实现
privatevoidsave(){
if(!
file.getName().equals("
)){//加入首次打开文件名判断代码
else{//如果是首次直接打开软件,在空白情况下点“保存”则另存该文件
⑥程序入口实现
publicstaticvoidmain(String[]args){
newnote();
publicvoidmouseClicked(MouseEvente){
⑦isCanCopy的实现
publicbooleanisCanCopy(){
booleanb=false;
intstart=jta.getSelectionStart();
intend=jta.getSelectionEnd();
if(start!
=end)
b=true;
returnb;
⑧isClipboard的实现
publicbooleanisClipboardString(){
Clipboardclipboard=jta.getToolkit().getSystemClipboard();
Transferablecontent=clipboard.getContents(this);
try{
if(content.getTransferData(DataFlavor.stringFlavor)instanceofString){
b=true;
catch(Exceptione){
⑨鼠标点击的实现
publicvoidmousePressed(MouseEvente){
if(e.getButton()==MouseEvent.BUTTON3){
copy.setEnabled(isCanCopy());
paste.setEnabled(isClipboardString());
cut.setEnabled(isCanCopy());
pop.show(e.getComponent(),e.getX(),e.getY());
//右击鼠标快捷菜单问
}//题代码修改
publicvoidmouseReleased(MouseEvente){
publicvoidmouseEntered(MouseEvente){
publicvoidmouseExited(MouseEvente){
}
2.遇到的问题和解决办法
问题①:
编辑菜单和工具栏功能无效
解决办法:
note函数中加入编辑菜单及工具栏各项的事件的初始,并在actionPerf
ormed函数中添加了判断操作的代码
问题②:
首次直接打开软件点保存错误
note类中文件变量初始语句Filefile;
语句改为Filefile=newFile
("
);
这样软件首次打开后文件名会初始默认为"
,再在save函数中加入了判断文件名是否为"
的代码,如果为"
则另存文件
问题③:
当打开文件内容显示超过界面时,右击鼠标快捷菜单显示位置不对应
将函数mousePressed中得pop.show(this,e.getX(),e.getY());
改为pop.show(e.getComponent(),e.getX(),e.getY());
不以this为参照位置,以鼠标为参照位置
教师评价
评定项目
A
B
C
D
算法正确
界面美观,布局合理
程序结构合理
操作熟练
语法、语义正确
解析完整
实验结果正确
文字流畅
报告规范
题解正确
其他:
评价教师签名:
2011年11月26日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华北 科技学院 Java 程序设计 实验 报告