《面向对象程序设计》实验报告十一_第1页
《面向对象程序设计》实验报告十一_第2页
《面向对象程序设计》实验报告十一_第3页
《面向对象程序设计》实验报告十一_第4页
《面向对象程序设计》实验报告十一_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计实验报告实验十一 绘制图形【实验目的】掌握使用图形类Graphics 画出不同图形的方法。【实验内容】(选做一题)1. 编写绘制圆形程序DrawOval.java。点击“确定”按钮时,在画布的指定位置画圆。2. 编写移动方块程序MoveSquare.java。程序由二个类组成:窗体主类(表现层)负责控制,确定所有组件的位置,处理用户对方块的操作。画布MoveCanvas类(逻辑层)负责绘图,其paint负责绘制方块,其方法moveUp(),moveDown(),moveLeft(),moveRight()分别响应窗体主类actionPerformed ()方法的对应的按钮事件,

2、再调用repaint方法来刷新图像。【实验报告】实习时间: 实习地点: 实习机号:具体实验内容1. 编写绘制圆形程序DrawOval.java。点击“确定”按钮时,在画布的指定位置画圆。运行成功的程序为:import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.*;import javax.swing.*;public class DrawOval extends JFrame implements ActionListener Ovalcanvas canvas;JTextFi

3、eld in_R,in_X,in_Y;JButton btn;public static void main(String args) / TODO Auto-generated method stubDrawOval DrawOval=new DrawOval();public DrawOval() super(画布上绘制圆);setSize(600,300);setVisible(true);canvas=new Ovalcanvas();in_R=new JTextField(6);in_X=new JTextField(6);in_Y=new JTextField(6);setLayo

4、ut(new FlowLayout();add(new JLabel(输入圆的位置坐标:);add(in_X);add(in_Y);add(new JLabel(输入圆的半径:);add(in_R);btn=new JButton(确定); btn.addActionListener(this);add(btn);add(canvas);validate();setDefaultCloseOperation(EXIT_ON_CLOSE);class Ovalcanvas extends Canvasint x,y,r; void Ovalcanvas() setSize(200,200); s

5、etBackground(Color.cyan); public void setOval(int x,int y,int r) this.x=x;this.y=y;this.r=r;public void paint(Graphics g) g.drawOval(x, y, 2*r, 2*r);Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubint x,y,r;try x=Integer.parseInt(in_X.getText(); y=Integer.parseInt

6、(in_Y.getText(); r=Integer.parseInt(in_R.getText();canvas.setOval(x,y,r);canvas.repaint();catch(NumberFormatException ee) x=0;y=0;r=0;结果截图:下面为具体实验过程:(1)运行,出现错误,主要是“cannot be resolved to a type”的错误。WindowEvent cannot be resolved to a typeGraphics cannot be resolved to a typeConstant cannot be resolve

7、d to a variableConstant cannot be resolved to a variable(2) 换了一个程序,运行,出现错误:Multiple markers at this line- Syntax error on token (, delete this token- Syntax error on token ), delete this tokenMultiple markers at this line- Syntax error on token(s), misplaced construct(s)- Syntax error on token void,

8、 expected- Syntax error, insert interface Identifier to complete InterfaceHeader(3)主窗体界面应该调研setOval(intx,inty,intN)变成画布类逻辑层。(4)按照云课堂PPT的程序,输入,发现有如下错误:Ovalcanvas cannot be resolved to a typeSyntax error on token Invalid Character, ; expectedJLable cannot be resolved to a typeSyntax error on token Inv

9、alid Character, ; expectedMultiple markers at this line- Ovalcanvas cannot be resolved to a type- Ovalcanvas cannot be resolved to a typeException in thread main java.lang.Error: Unresolved compilation problem: at DrawOval.main(DrawOval.java:9)(5)第35行class OvalCanvas extends Canvas应该改为“class Ovalcan

10、vas extends Canvas”,没有注意大小写。(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)经过观察,发现我之

11、所以会出现“JLable cannot be resolved to a type”的错误,是因为我把“JLabel”写出了”JLable”.(9) 经改善以上一系列程序错误以后,我运行程序,程序能运行成功,但是当我输入圆的半径及位置坐标之后,点击“确定”却无法画出一个与之相对应的圆。明明程序是和老师PPT里的程序是一样的,但就是画不出圆来。(10) 在以上问题的基础上,首先,我将第8行的代码“JLabel jl1,jl2;”删除。(11)其次,我将第22及23行的代码jl1=new JLabel(输入圆的位置坐标:);this.add(jl1);改为:add(new JLabel(输入圆的位

12、置坐标:);(12)最后,我将第25及26的代码jl2=new JLabel(输入圆的半径:);this.add(jl2);改为:add(new JLabel(输入圆的半径:);(13) 最后的最后,经过一系列对该程序的摸索及改正,运行成功,结果截图为:实习小结1.实验一主要是卡在“cannot be resolved to a type”这里,比如说:Ellipse2D cannot be resolved to a type(椭圆不能被解析为类型)等“cannot be resolved to a type”的类似错误。这部分错误主要是因为没有注意英文字母的大小写以及中英式字符的使用而导致

13、的,比如说将“JLabel”写成了”JLable”则会出现“JLable cannot be resolved to a type”的错误。在以后的实验中还是要多注意字母的大小写这类小问题,因为代码总是英文和中文互用,很容易搞混。2.实验一还卡在以下错误:OvalCanvas cannot be resolved to a type(主要是因为“Ovalcanvas”写成了“OvalCanvas”,字母大小写的问题。Syntax error on token Invalid Character, ; expected。(符号“;”没有用英文字符“;”的缘故)。3.对于实验一,主要是要掌握“主窗体界面应该调研setOval(intx,inty,intN)变成画布类逻辑层”的知识点。难写的程序是以下部分:int x,y,r;try x=Integer.parseInt(in_X.getText(); y=Integer.parseInt(in_Y.getText(); r=In

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论