- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验3MVC和Swing模型.doc
实验3 MVC和Swing模型
一、实验名称和性质
所属课程 Java语言程序设计 实验名称 MVC和Swing模型 实验学时 2 实验性质 ?验证 综合?设计 必做/选做 ?必做 选做 二、实验目的
1.理解Swing组件的模型-视图-控件结构;
2. 掌握 JSpinner;
3.掌握JList的ListModel和DefaultListMode。
三、实验内容
1.设计一个显示圆的示例,模型类CircleModel,存储描述圆的属性,视图类CircleView显示圆,控件类CircleController接收输入(验证性内容)。
2. 使用列表模型添加和删除列表项(验证性内容)。
3. 用java实现简单的贪吃蛇游戏,设计合理的类,分别扮演模型(Model)的角色、视图(View)的角色和控制器(Controller)的角色。观察三种角色相互间的影响关系。(设计性内容)。
四、实验的软硬件环境要求
硬件环境要求:
PC计算机;内存512MB以上
使用的软件名称、版本号以及模块:
操作系统:Windows 2000或Windows XP
软件:JDK 7.0;Eclipse
五、知识准备
前期要求掌握的知识:了解Java程序的运行流程。
实验相关理论或原理:模型-视图-控件结构(MVC) 是一种开发组件的方式,它将数据的存储和处理与数据的可视化表示分离开来。存储和处理数据的组件称为模型(model),它包含组件的实际内容。表示数据的组件称为视图,它操控组件所有必要的行为。控件是一种通常用来获取数据的组件。微调文本域JSpinner是一个右侧含有一对小箭头的文本域,它能够让用户从一个有序序列中选择数字、日期或值。SpinnerModel 是所有微调文本域模型的一个接口。AbstractSpinnerModel 是实现 SpinnerModel 的一个便利抽象类,并提供了注册和注销方法的实现。 SpinnerListModel, SpinnerNumberModel, and SpinnerDateModel 是 SpinnerModel的具体实现。JList 有两种支持模型,列表模型(list model)和列表选择模型(list-selection model)。列表模型是用来存储和处理数据的。列表选择模型是用来选择项目的。默认情况下,项目是作为字符串或图标来绘制的。也可以通过实现ListCellRenderer接口来创建自定义的绘制方式。
六、验证性与设计性实验
实验1
设计一个显示圆的示例,模型类CircleModel,存储描述圆的属性,视图类CircleView显示圆,控件类CircleController接收输入。
(1)设计模型类CircleModel,存储描述圆的属性(包括圆的半径radius,填充filled,颜色color)。
import java.awt.event.*;
import java.util.*;
public class CircleModel {
// Property radius. 初值为20
代码1 private double radius = 20;
/** Property filled. */
private boolean filled;
/** Property color. */
private java.awt.Color color;
/** Utility field used by event firing mechanism. */
private ArrayList<ActionListener> actionListenerList;
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
// Notify the listener for the change on radius
processEvent(
new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "radius"));
}
//filled的访问器
代码2
public boolean isFilled() {
return filled;
}
public void setFilled(boolean filled) {
this.filled = filled;
文档评论(0)