首页 - 网校 - 万题库 - 直播 - 雄鹰网校 - 团购 - 书城 - 模考 - 学习通 - 导航 -
首页网校万题库直播雄鹰网校团购书城模考论坛实用文档作文大全宝宝起名
2015中考
法律硕士
2015高考
MBA考试
2015考研
MPA考试
在职研
中科院
考研培训
专升本
自学考试 成人高考
四 六 级
GRE考试
攻硕英语
零起点日语
职称英语
口译笔译
申硕英语
零起点韩语
商务英语
日语等级
GMAT考试
公共英语
职称日语
新概念英语
专四专八
博思考试
零起点英语
托福考试
托业考试
零起点法语
雅思考试
成人英语三级
零起点德语
等级考试
华为认证
水平考试
Java认证
职称计算机 微软认证 思科认证 Oracle认证 Linux认证
公 务 员
导游考试
物 流 师
出版资格
单 证 员
报 关 员
外 销 员
价格鉴证
网络编辑
驾 驶 员
报检员
法律顾问
管理咨询
企业培训
社会工作者
银行从业
教师资格
营养师
保险从业
普 通 话
证券从业
跟 单 员
秘书资格
电子商务
期货考试
国际商务
心理咨询
营 销 师
司法考试
国际货运代理人
人力资源管理师
广告师职业水平
卫生资格 执业医师 执业药师 执业护士
会计从业资格
基金从业资格
统计从业资格
经济师
精算师
统计师
会计职称
法律顾问
ACCA考试
初级会计职称
资产评估师
高级经济师
注册会计师
高级会计师
美国注册会计师
审计师考试
国际内审师
注册税务师
理财规划师
一级建造师
安全工程师
设备监理师
公路监理师
公路造价师
二级建造师
招标师考试
物业管理师
电气工程师
建筑师考试
造价工程师
注册测绘师
质量工程师
岩土工程师
注册给排水
造价员考试
注册计量师
环保工程师
化工工程师
暖通工程师
咨询工程师
结构工程师
城市规划师
材料员考试
消防工程师
监理工程师
房地产估价
土地估价师
安全评价师
房地产经纪人
投资项目管理师
环境影响评价师
土地登记代理人
宝宝起名
缤纷校园
实用文档
入党申请
英语学习
思想汇报
作文大全
工作总结
求职招聘 论文下载 直播课堂
您现在的位置: 考试吧 > 计算机等级考试 > 计算机二级考试 > JAVA > 复习资料 > 正文

2015计算机等级考试二级Java入门教程第十四章(8)

来源:考试吧 2015-02-06 15:43:56 考试吧:中国教育培训第一门户 模拟考场
考试吧整理了“2015计算机等级考试二级Java入门教程”,望给备考2015年计算机等级考试的考生带来帮助!

  点击查看:2015计算机等级考试二级Java入门教程章节汇总

  点击查看:2015计算机等级考试二级Java入门教程第十四章汇总

  14.8 定义自己的几何图形

  在Sketcher中定义几何图形的所有类都静态地嵌套在Element类中。正像我们已经说过的,这样做除了能够保证几何图形类定义在一起外,还避免了Java类库与Rectangle这样的类发生冲突的可能。

  我们可以从最简单的描述直线类开始。

  定义直线

  一条直线由两个点和它的颜色定义。我们可以在基类Element中嵌套定义Line类,如下所示:

  import java.awt.*; //For the Shape class

  import java.awt.geom.*; //For classes defining shapes

  class Element

  //Code defining the base class....

  //Nested class defining a line...

  public static class Line extends Element

  {

  public Line(Point start,Point ebd, Color)

  {

  super(color);

  line=new Line2D.Double(start,end);

  }

  public Shape getshape()

  {

  return line;

  }

  public java.awt.Rectangle getBounds()

  {

  return line.getBounds();

  }

  public void modify(Point start,Point last)

  {

  line.x2=last.x

  line.y2=last.y

  }

  private Line2D.Double line;

  }

  }

  Line类是static。因此它不从属于任何一个可用的Element对象。构造函数有一个参数,分别为Point直线的两个端点以及它的颜色,构造函数的Point可以是Point2D类型,或者当Point2D是Paint的超类时也一可以是Point,在把颜色传递给基类构造函数以后,把这条直线创建为Line2D.Double对象。由于这个类实现了Shape接口,所以可以从getshape方法以Shape类型返回它。

  getBounds()方法不会这样简单。我们只用Line对象的getBounds()方法返回了产生的Rectangle对象。要注意我们是如何限定返同类型的。这样限定是因为我们将耍把Rectangle类嵌套到Element类中,如果我们这样实现,编译程序将把这里的Rectangle类型解释为我们的矩形类,而不是定义在java.awt包中的那个矩形类。在出现这类冲突时,你总是可以提供限定的类名。

  如果你把保存为Element.java的类定义Element放在Sketcher类的同一个目录中,所需要做的全部工作就是确保将MouseHandler类中的CreateElement()成员,除Element.Line之外的所有构造函数都变成注释,该类是SketchView的内置类。方法的代码应该这样:

  private Element createElement(Point start, Point end)

  {

  switch(theApp.getWindow().getElementType())

  {

  case LINE:

  return new Element.Line(start, end,

  theApp.getWindow().getElementColor());

  // case RECTANGLE:

  // return new Element.Rectangle(start, end,

  // theApp.getWindow().getElementColor());

  // case CIRCLE:

  // return new Element.Circle(start, end,

  // theApp.getWindow().getElementColor());

  // case CURVE:

  // return new Element.Curve(start, end,

  // theApp.getWindow().getElementColor());

  }

  return null;

  }

  如果你编译并运行Stretcher,应该能够绘制一幅如下所示的图形。

  

  我们在此还只能绘制直线。试着绘制一些东西,否则将会抛出Nu1lPointException,这是因为CreateElement()方法将返回null,而不是几何图形的引用。

  如何工作

  当你拖动鼠标时,Element_Line对象被反复地建立并且进行绘制来产生橡皮筋的效果。每条直线从你按下鼠标按键的位置点到当前光标位置。试着绘制不同的颜色。这些操作应该都能够完成。如果不能操作,或许是因为你忘记删除临时放在SketchFrame的ColorAction actionPerformed()方法中的getContentPane().setBackground(Color)调用了。

  如果你键入完代码(我希望这样),若添加到Sketcher中的代码量较人时,有可能会出现一些错误。在这种情况下,请回到本书前面的代码中找出其原因。在你做这项工作之前,试着使用JDK的Java调试器或者用print()标识出可能出现问题的地方,这样你就可以继续跟踪。在你编写自己的代码时这样做是个好习惯。

  定义矩形

  绘制矩形的交互方法类似于直线。当你绘制一个矩形时,鼠标按下的点定义矩形的第一个角当你拖动鼠标光标位置时,将定义相对着的角。如下说明所不:

  释放鼠标按键将建立被存储在模式中最后的矩形图形。正像你所看到的,你按下鼠标按键的光标位置可以作为矩形的任何一个角。从便于应用的角度来说,这样很好:但是我们的代码实际上一认为Rectangle2D对象指的总是左上角,以及宽度和高度。

  

  示意图显示了4种关于绘制矩形拖动鼠标路径标位最小的端点,宽度是两个x和y坐标值的最小的端点,宽度是两个X坐标差的绝对值,高度是两个y坐标差的绝对值。我们可以按照这种形式定义我们的类。

  相关推荐:

  2015计算机等级考试二级Java入门教程章节汇总

  2014计算机二级Java程序设计真题及答案(网友版)

  考试吧特别策划:2015年计算机等级考试报考指南

文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。
Copyright © 2004- 考试吧计算机等级考试网 All Rights Reserved 
中国科学院研究生院权威支持(北京)
在线模拟试题
考证通关杀器
考试最新资讯
一次通关技巧