《面向对象程序设计》实验报告十一Word格式文档下载.docx
《《面向对象程序设计》实验报告十一Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》实验报告十一Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
实习地点:
实习机号:
具
体
实
验
内
容
运行成功的程序为:
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.*;
importjavax.swing.*;
publicclassDrawOvalextendsJFrameimplementsActionListener{
Ovalcanvascanvas;
JTextFieldin_R,in_X,in_Y;
JButtonbtn;
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
DrawOvalDrawOval=newDrawOval();
}
publicDrawOval(){
super("
画布上绘制圆"
);
setSize(600,300);
setVisible(true);
canvas=newOvalcanvas();
in_R=newJTextField(6);
in_X=newJTextField(6);
in_Y=newJTextField(6);
setLayout(newFlowLayout());
add(newJLabel("
输入圆的位置坐标:
"
));
add(in_X);
add(in_Y);
输入圆的半径:
add(in_R);
btn=newJButton("
确定"
btn.addActionListener(this);
add(btn);
add(canvas);
validate();
setDefaultCloseOperation(EXIT_ON_CLOSE);
classOvalcanvasextendsCanvas{
intx,y,r;
voidOvalcanvas(){
setSize(200,200);
setBackground(Color.cyan);
}
publicvoidsetOval(intx,inty,intr){
this.x=x;
this.y=y;
this.r=r;
publicvoidpaint(Graphicsg){
g.drawOval(x,y,2*r,2*r);
@Override
publicvoidactionPerformed(ActionEvente){
try{
x=Integer.parseInt(in_X.getText());
y=Integer.parseInt(in_Y.getText());
r=Integer.parseInt(in_R.getText());
canvas.setOval(x,y,r);
canvas.repaint();
catch(NumberFormatExceptionee){
x=0;
y=0;
r=0;
}
结果截图:
下面为具体实验过程:
(1)运行,出现错误,主要是“cannotberesolvedtoatype”的错误。
WindowEventcannotberesolvedtoatype
Graphicscannotberesolvedtoatype
Constantcannotberesolvedtoavariable
(2)换了一个程序,运行,出现错误:
Multiplemarkersatthisline-Syntaxerrorontoken"
("
deletethistoken-Syntaxerrorontoken"
)"
deletethistoken
Multiplemarkersatthisline
-Syntaxerrorontoken(s),misplacedconstruct(s)
-Syntaxerrorontoken"
void"
@expected
-Syntaxerror,insert"
interfaceIdentifier"
tocomplete
InterfaceHeader
(3)主窗体界面应该调研setOval(int[]x,int[]y,intN)变成画布类逻辑层。
(4)按照云课堂PPT的程序,输入,发现有如下错误:
①Ovalcanvascannotberesolvedtoatype
②Syntaxerrorontoken"
InvalidCharacter"
;
expected
③JLablecannotberesolvedtoatype
④Syntaxerrorontoken"
⑤Multiplemarkersatthisline
-Ovalcanvascannotberesolvedto
atype
⑥Exceptioninthread"
main"
java.lang.Error:
Unresolvedcompilationproblem:
atDrawOval.main(DrawOval.java:
9)
(5)第35行classOvalCanvasextendsCanvas应该改为“classOvalcanvasextendsCanvas”,没有注意大小写。
(6)第14行“super("
);
”这里的“;
”有问题,忘了使用英文符号。
(7)将以下程序:
x=Integer.parseInt(jl1.getText());
y=Integer.parseInt(jl2.getText());
r=Integer.parseInt(jl3.getText());
改为:
x=Integer.parseInt(in_X.getText());
(8)经过观察,发现我之所以会出现“JLablecannotberesolvedtoatype”的错误,是因为我把“JLabel”写出了”JLable”.
(9)经改善以上一系列程序错误以后,我运行程序,程序能运行成功,但是当我输入圆的半径及位置坐标之后,点击“确定”却无法画出一个与之相对应的圆。
明明程序是和老师PPT里的程序是一样的,但就是画不出圆来。
(10)在以上问题的基础上,首先,我将第8行的代码“JLabeljl1,jl2;
”删除。
(11)其次,我将第22及23行的代码jl1=newJLabel("
this.add(jl1);
add(newJLabel("
(12)最后,我将第25及26的代码jl2=newJLabel("
this.add(jl2);
(13)最后的最后,经过一系列对该程序的摸索及改正,运行成功,结果截图为:
习
小
结
1.实验一主要是卡在“cannotberesolvedtoatype”这里,比如说:
Ellipse2Dcannotberesolvedtoatype(椭圆不能被解析为类型)等“cannotberesolvedtoatype”的类似错误。
这部分错误主要是因为没有注意英文字母的大小写以及中英式字符的使用而导致的,比如说将“JLabel”写成了”JLable”则会出现“JLablecannotberesolvedtoatype”的错误。
在以后的实验中还是要多注意字母的大小写这类小问题,因为代码总是英文和中文互用,很容易搞混。
2.实验一还卡在以下错误:
①OvalCanvascannotberesolvedtoatype(主要是因为“Ovalcanvas”写成了“OvalCanvas”,字母大小写的问题。
expected。
(符号“;
”没有用英文字符“;
”的缘故)。
3.对于实验一,主要是要掌握“主窗体界面应该调研setOval(int[]x,int[]y,intN)变成画布类逻辑层”的知识点。
难写的程序是以下部分:
intx,y,r;
4.其实这个实验我是在参考老师云课堂PPT才写出来的。
在做该实验的过程中,犯了很多不应该犯的低级错误,特别是英文字母的大小写及中英式字符的运用这些低级错误,在以后的实验中,我要更加注意这方面的问题。