《面向对象程序设计》实验报告十一.docx

上传人:b****6 文档编号:5171253 上传时间:2022-12-13 格式:DOCX 页数:17 大小:929.52KB
下载 相关 举报
《面向对象程序设计》实验报告十一.docx_第1页
第1页 / 共17页
《面向对象程序设计》实验报告十一.docx_第2页
第2页 / 共17页
《面向对象程序设计》实验报告十一.docx_第3页
第3页 / 共17页
《面向对象程序设计》实验报告十一.docx_第4页
第4页 / 共17页
《面向对象程序设计》实验报告十一.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

《面向对象程序设计》实验报告十一.docx

《《面向对象程序设计》实验报告十一.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》实验报告十一.docx(17页珍藏版)》请在冰豆网上搜索。

《面向对象程序设计》实验报告十一.docx

《面向对象程序设计》实验报告十一

《面向对象程序设计》实验报告

实验十一绘制图形

【实验目的】

掌握使用图形类Graphics画出不同图形的方法。

【实验内容】(选做一题)

1.编写绘制圆形程序DrawOval.java。

点击“确定”按钮时,在画布的指定位置画圆。

2.编写移动方块程序MoveSquare.java。

程序由二个类组成:

窗体主类(表现层)负责控制,确定所有组件的位置,处理用户对方块的操作。

画布MoveCanvas类(逻辑层)负责绘图,其paint负责绘制方块,其方法moveUp(),moveDown(),moveLeft(),moveRight()分别响应窗体主类actionPerformed()方法的对应的按钮事件,再调用repaint方法来刷新图像。

 

【实验报告】

实习时间:

实习地点:

实习机号:

1.编写绘制圆形程序DrawOval.java。

点击“确定”按钮时,在画布的指定位置画圆。

运行成功的程序为:

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(newJLabel("输入圆的半径:

"));

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){

//TODOAuto-generatedmethodstub

intx,y,r;

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

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"InvalidCharacter",;expected

⑤Multiplemarkersatthisline

-Ovalcanvascannotberesolvedto

atype

-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());

y=Integer.parseInt(in_Y.getText());

r=Integer.parseInt(in_R.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);改为:

add(newJLabel("输入圆的半径:

"));

(13)最后的最后,经过一系列对该程序的摸索及改正,运行成功,结果截图为:

 

 

 

1.实验一主要是卡在“cannotberesolvedtoatype”这里,比如说:

Ellipse2Dcannotberesolvedtoatype(椭圆不能被解析为类型)等“cannotberesolvedtoatype”的类似错误。

这部分错误主要是因为没有注意英文字母的大小写以及中英式字符的使用而导致的,比如说将“JLabel”写成了”JLable”则会出现“JLablecannotberesolvedtoatype”的错误。

在以后的实验中还是要多注意字母的大小写这类小问题,因为代码总是英文和中文互用,很容易搞混。

2.实验一还卡在以下错误:

①OvalCanvascannotberesolvedtoatype(主要是因为“Ovalcanvas”写成了“OvalCanvas”,字母大小写的问题。

②Syntaxerrorontoken"InvalidCharacter",;expected。

(符号“;”没有用英文字符“;”的缘故)。

3.对于实验一,主要是要掌握“主窗体界面应该调研setOval(int[]x,int[]y,intN)变成画布类逻辑层”的知识点。

难写的程序是以下部分:

intx,y,r;

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;

}

4.其实这个实验我是在参考老师云课堂PPT才写出来的。

在做该实验的过程中,犯了很多不应该犯的低级错误,特别是英文字母的大小写及中英式字符的运用这些低级错误,在以后的实验中,我要更加注意这方面的问题。

 

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

当前位置:首页 > 高等教育 > 艺术

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

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