- 浏览: 195495 次
- 性别:
- 来自: 包头
最新评论
-
chengeng:
图片没有显示。
登录系统-基于struts2+spring+hibernate分层架构 -
chengeng:
不知为什么,图片没有显示出来。
登录系统-基于struts2+spring+hibernateJPA分层架构 -
rdz09:
解析得很详细,不错
从头学起:struts2(1) -
zxd543:
图怎么都看不见呢?
登录系统-基于struts2+spring+hibernate分层架构 -
huweijie:
...
JAVA语言程序设计-第九章 异常处理
一、实验目的
将所学知识进行综合运用,模仿设计具有实际意义的应用程序。锻炼使用新类(没有介绍的)类的能力。
二、实验要求
在计算机上实现指导书中应用程序。
分析应用程序中使用了哪些系统类,指出使用该类的变量与方法。说明创建了什么类。包含什么变量与方法。
能根据实际需要使用不同的系统类编写应用程序。
三、实验内容
(一)幻灯机效果——连续显示多幅图像
程序功能:如果 Applet 仅仅是显示一幅图像,没有什么特别的意义,不如直接在 HTML 文件中显示图像。本程序可以像幻灯机那样连续显示多幅图像
在当前目录中的 image 文件夹中准备 6 幅花的图像文件。
编写 KY9_1.java 程序文件,源代码如下。
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class KY8_1 extends Applet {
int index;
Image imgs[]=new Image[6];
public void init(){
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
index=++index%6;
repaint();
}
};
for (int i=0; i<6; i++)
imgs[i]=getImage(getCodeBase(),"image/花"+(i+1)+".gif");
}
public void paint(Graphics g){
if (imgs[index]!=null)
g.drawImage(imgs[index],60,20,this);
}
}
在这个程序中,加载了 6 幅图像,点击鼠标可逐一显示图像,并在显示完 6 幅图像后自动返回第一幅重新开始。
对程序进行分析,写出分析结果。
(二)使用滚动条改变背景颜色
1. 程序功能:移动滚动条可以改变背景颜色。运行结果如图 8.2 所示。
2. 编写 KY9_2.java 程序文件,源代码如下。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.awt.Scrollbar;
import java.awt.Color;
public class KY8_2 extends Applet implements AdjustmentListener {
Scrollbar r1,r2,r3;
int red,green,blue;
TextField t;Label a;
public void init() {
setLayout(null);
r1=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255);
r2=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255);
r3=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255);
t=new TextField("0",5);
t.setEditable(false);
a=new Label("移动滚动条可改变背景颜色",Label.CENTER);
add(a);a.setBounds(120,10,150,15);
add(r1);r1.setBounds(20,30,100,20);
add(r2);r2.setBounds(140,30,100,20);
add(r3);r3.setBounds(260,30,100,20);
add(t);t.setBounds(20,120,220,18);
r1.addAdjustmentListener (this);
r2.addAdjustmentListener (this);
r3.addAdjustmentListener (this);
}
public void adjustmentValueChanged(AdjustmentEvent e) {
red=r1.getValue();
green=r2.getValue();
blue=r3.getValue();
t.setText("red 的值"+String.valueOf(r1.getValue())+
",green 的值"+String.valueOf(r2.getValue())+",blue 的值"+
String.valueOf(r3.getValue()));
Color c=new Color(red,green,blue);
setBackground(c);
}
}
3.对程序进行分析,写出分析结果。
(三)Applet 与 Application 合并运行
Java Applet 和 Application 程序的区别在于运行方式不同。那么能不能将它们合并起来,让同
一个程序既可以由浏览器运行又可以单独运行呢?
1.程序功能:在 Applet 与 Application 方式下都能运行。
2.编写 KY9_3.java 程序文件,源代码如下。
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class KY9_3 extends Applet implements ActionListener {
Button button;
TextField field;
public static void main(String[] args) {
Frame window=new Frame("AppDemo"); // 创建窗口对象
AppDemo app=new AppDemo(); // 创建程序对象
window.add("Center", app); // 将程序对象添加到窗口
app.init(); // 调用程序的初始化方法
window.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}); // 以上用匿名类的方式为窗口添加关闭功能
window.setSize(300,120); // 设定窗口大小
window.setVisible(true); // 设定窗口可见
}
public void init() {
button=new Button("显示");
button.addActionListener(this);
field=new TextField(23);
add(field);
add(button);
}
public void actionPerformed(ActionEvent e) {
field.setText("Applet 与 Application 的合并运行");
}
}
3. 编译 KY9_3.java 源程序。
4. 编写浏览 Applet 的页面文件 KY9_3.html,在浏览器打开文件 KY9_3.htm
5. 在独立运行的 Application 方式下运行 KY9_3.class 字节文件
(四)创建电闪雷鸣的动画
1.程序功能:本程序可以通过按钮控制声音和动画的开始和停止操作。动画显示了电闪雷鸣的场面。注意:图像文件要分别表现不同时间段的电闪场面,这样才会有动画效果。
2.编写 KY9_4.java 程序文件,源代码如下。
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class KY9_4 extends Applet implements Runnable,ActionListener {
Image iImages[]; //图像数组
Thread aThread;
int iFrame; //图像数组下标
AudioClip au; //定义一个声音对象
Button b1,b2;
public void init() {
int i,j;
iFrame=0;
aThread=null;
iImages = new Image[10];
for (i=0;i<10;i++) {
iImages[i] =getImage(getCodeBase(),"image/"+"tu"+(i+1)+".JPG");
}
au=getAudioClip(getDocumentBase(),"Wav/Sound.wav");
au.play(); //播放一次声音文件
Panel p1 = new Panel();
b1 = new Button("开始");
b2 = new Button("停止");
p1.add(b1);
p1.add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
setLayout(new BorderLayout());
add(p1,"South");
}
public void start() {
if (aThread == null)
{
aThread = new Thread(this);
aThread.start(); //线程启动
b1.setEnabled(false);
}
}
public void stop() {
if (aThread != null) {
aThread.interrupt(); //线程中断
aThread = null;
au.stop(); //停止播放声音文件
}
}
public void run() {
while (true)
{
iFrame++;
iFrame %= (iImages.length); //下一幅图像的下标
repaint();
try {
Thread.sleep(50);
}
catch (InterruptedException e)
{ //中断时抛出
break; //退出循环
}
}
}
public void update(Graphics g) {
g.drawImage(iImages[iFrame],0,0,this);
}
public void actionPerformed(ActionEvent e) {
if ((e.getSource()==b1) && (aThread == null) )
{ //单击 Start 按钮时触发
aThread = new Thread(this);
aThread.start(); //线程启动
b1.setEnabled(false);
b2.setEnabled(true);
au.loop(); //循环播放声音文件
}
if ((e.getSource()==b2) && (aThread != null) )
{ //单击 Stop 按钮时触发
aThread.interrupt(); //线程中断
aThread = null;
b1.setEnabled(true);
b2.setEnabled(false);
au.stop(); //停止播放声音文件
}
}
}
3.编译源程序。
4.编写浏览 Applet 的页面文件,在浏览器运行结果
将所学知识进行综合运用,模仿设计具有实际意义的应用程序。锻炼使用新类(没有介绍的)类的能力。
二、实验要求
在计算机上实现指导书中应用程序。
分析应用程序中使用了哪些系统类,指出使用该类的变量与方法。说明创建了什么类。包含什么变量与方法。
能根据实际需要使用不同的系统类编写应用程序。
三、实验内容
(一)幻灯机效果——连续显示多幅图像
程序功能:如果 Applet 仅仅是显示一幅图像,没有什么特别的意义,不如直接在 HTML 文件中显示图像。本程序可以像幻灯机那样连续显示多幅图像
在当前目录中的 image 文件夹中准备 6 幅花的图像文件。
编写 KY9_1.java 程序文件,源代码如下。
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class KY8_1 extends Applet {
int index;
Image imgs[]=new Image[6];
public void init(){
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
index=++index%6;
repaint();
}
};
for (int i=0; i<6; i++)
imgs[i]=getImage(getCodeBase(),"image/花"+(i+1)+".gif");
}
public void paint(Graphics g){
if (imgs[index]!=null)
g.drawImage(imgs[index],60,20,this);
}
}
在这个程序中,加载了 6 幅图像,点击鼠标可逐一显示图像,并在显示完 6 幅图像后自动返回第一幅重新开始。
对程序进行分析,写出分析结果。
(二)使用滚动条改变背景颜色
1. 程序功能:移动滚动条可以改变背景颜色。运行结果如图 8.2 所示。
2. 编写 KY9_2.java 程序文件,源代码如下。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.awt.Scrollbar;
import java.awt.Color;
public class KY8_2 extends Applet implements AdjustmentListener {
Scrollbar r1,r2,r3;
int red,green,blue;
TextField t;Label a;
public void init() {
setLayout(null);
r1=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255);
r2=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255);
r3=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255);
t=new TextField("0",5);
t.setEditable(false);
a=new Label("移动滚动条可改变背景颜色",Label.CENTER);
add(a);a.setBounds(120,10,150,15);
add(r1);r1.setBounds(20,30,100,20);
add(r2);r2.setBounds(140,30,100,20);
add(r3);r3.setBounds(260,30,100,20);
add(t);t.setBounds(20,120,220,18);
r1.addAdjustmentListener (this);
r2.addAdjustmentListener (this);
r3.addAdjustmentListener (this);
}
public void adjustmentValueChanged(AdjustmentEvent e) {
red=r1.getValue();
green=r2.getValue();
blue=r3.getValue();
t.setText("red 的值"+String.valueOf(r1.getValue())+
",green 的值"+String.valueOf(r2.getValue())+",blue 的值"+
String.valueOf(r3.getValue()));
Color c=new Color(red,green,blue);
setBackground(c);
}
}
3.对程序进行分析,写出分析结果。
(三)Applet 与 Application 合并运行
Java Applet 和 Application 程序的区别在于运行方式不同。那么能不能将它们合并起来,让同
一个程序既可以由浏览器运行又可以单独运行呢?
1.程序功能:在 Applet 与 Application 方式下都能运行。
2.编写 KY9_3.java 程序文件,源代码如下。
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class KY9_3 extends Applet implements ActionListener {
Button button;
TextField field;
public static void main(String[] args) {
Frame window=new Frame("AppDemo"); // 创建窗口对象
AppDemo app=new AppDemo(); // 创建程序对象
window.add("Center", app); // 将程序对象添加到窗口
app.init(); // 调用程序的初始化方法
window.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}); // 以上用匿名类的方式为窗口添加关闭功能
window.setSize(300,120); // 设定窗口大小
window.setVisible(true); // 设定窗口可见
}
public void init() {
button=new Button("显示");
button.addActionListener(this);
field=new TextField(23);
add(field);
add(button);
}
public void actionPerformed(ActionEvent e) {
field.setText("Applet 与 Application 的合并运行");
}
}
3. 编译 KY9_3.java 源程序。
4. 编写浏览 Applet 的页面文件 KY9_3.html,在浏览器打开文件 KY9_3.htm
5. 在独立运行的 Application 方式下运行 KY9_3.class 字节文件
(四)创建电闪雷鸣的动画
1.程序功能:本程序可以通过按钮控制声音和动画的开始和停止操作。动画显示了电闪雷鸣的场面。注意:图像文件要分别表现不同时间段的电闪场面,这样才会有动画效果。
2.编写 KY9_4.java 程序文件,源代码如下。
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class KY9_4 extends Applet implements Runnable,ActionListener {
Image iImages[]; //图像数组
Thread aThread;
int iFrame; //图像数组下标
AudioClip au; //定义一个声音对象
Button b1,b2;
public void init() {
int i,j;
iFrame=0;
aThread=null;
iImages = new Image[10];
for (i=0;i<10;i++) {
iImages[i] =getImage(getCodeBase(),"image/"+"tu"+(i+1)+".JPG");
}
au=getAudioClip(getDocumentBase(),"Wav/Sound.wav");
au.play(); //播放一次声音文件
Panel p1 = new Panel();
b1 = new Button("开始");
b2 = new Button("停止");
p1.add(b1);
p1.add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
setLayout(new BorderLayout());
add(p1,"South");
}
public void start() {
if (aThread == null)
{
aThread = new Thread(this);
aThread.start(); //线程启动
b1.setEnabled(false);
}
}
public void stop() {
if (aThread != null) {
aThread.interrupt(); //线程中断
aThread = null;
au.stop(); //停止播放声音文件
}
}
public void run() {
while (true)
{
iFrame++;
iFrame %= (iImages.length); //下一幅图像的下标
repaint();
try {
Thread.sleep(50);
}
catch (InterruptedException e)
{ //中断时抛出
break; //退出循环
}
}
}
public void update(Graphics g) {
g.drawImage(iImages[iFrame],0,0,this);
}
public void actionPerformed(ActionEvent e) {
if ((e.getSource()==b1) && (aThread == null) )
{ //单击 Start 按钮时触发
aThread = new Thread(this);
aThread.start(); //线程启动
b1.setEnabled(false);
b2.setEnabled(true);
au.loop(); //循环播放声音文件
}
if ((e.getSource()==b2) && (aThread != null) )
{ //单击 Stop 按钮时触发
aThread.interrupt(); //线程中断
aThread = null;
b1.setEnabled(true);
b2.setEnabled(false);
au.stop(); //停止播放声音文件
}
}
}
3.编译源程序。
4.编写浏览 Applet 的页面文件,在浏览器运行结果
发表评论
-
确认对话框ConfirmDialog和选择对话框OptionDialog:猜数游戏
2012-04-07 18:22 30861确认对话框ConfirmDialog给出提示信息和若干 ... -
输入对话框showInputDialog综合应用:猜数游戏
2012-04-06 17:13 7188Java输入对话框共有6个重载方法showInputDi ... -
消息对话框MessageDialog综合应用:九九表
2012-04-01 23:39 22520java信息对话框:MessageDialog是一个非常 ... -
从头学起:struts2(1)
2011-12-15 23:10 1308从头学起:struts2(1)从页面跳转说起:先看一个例子,使 ... -
登录系统-基于struts2+spring+hibernateJPA分层架构
2011-12-08 21:27 18071、新建一个mysql数据库,并新建连接,数据库结构如下图所示 ... -
登录系统-基于struts2+spring+hibernate分层架构
2011-11-29 21:43 34111、创建mysql数据库,结构如下图所示: 2、 ... -
依赖注入入门-从dao到service
2011-11-23 18:30 8129在分层的web应用系统中,通常将数据操作分为dao数据层和se ... -
登录系统-基于struts2+hibernate分层架构
2011-11-21 23:07 296本实验使用struts+hibernate分层结构,目的是可以 ... -
登录系统-基于servlet+hibernate分层架构
2011-11-21 12:13 3118本实验使用servlet+hibernate分层结构,目的是 ... -
登录系统-基于struts2的分层架构
2011-11-19 21:48 26381.下载支持Netbeans7.0的Struts2插件,在工具 ... -
登录系统-基于servlet
2011-11-19 19:48 31031. 新建一个web项目,在项目中添加两个包:Ja ... -
登录系统-基于servlet+hibernate
2011-11-19 19:01 41391.新建一个java web项目,在步骤4中选择Hiber ... -
基于NetBeans7.0的Hibernate编程入门
2011-11-19 11:47 1454基于NetBeans7.0的 Hebernate入门 ... -
实验13 数据库的连接:JDBC*
2011-03-28 22:02 1223一、实验目的 了解JDBC核心API,利用JDBC核心API ... -
实验14 JSP与Servlet技术*
2011-03-28 22:01 1208一、实验目的 1. 理解JSP元素的概念 2. 理解JSP ... -
实验12 网络编程
2011-03-28 21:59 1198一、实验目的 1. 掌握InetAddress类的使用。 2 ... -
实验11 线程
2011-03-28 21:59 856一、实验目的 1. 线程 ... -
实验10 流与文件
2011-03-28 21:58 927一、实验目的 1. 理解数据流的概念 2. 理解Java流的 ... -
实验 8 图形与多媒体处理
2011-03-28 21:56 865一、实验目的 熟悉图形、图像的使用方法,理解计算机动画 ... -
实验 7 建立图形用户界面
2011-03-28 21:54 1356一、实验目的 了解图形用户界面基本组件窗口、按钮、文本 ...
相关推荐
1.要求学生能够运用所学过的基础语法知识和基本编程技能进行综合练习。 2.独立完成3套模拟试题。
2020年中考物理实验集中专项训练第9练热学实验含解析
思科网络技术学院专用教材的课本内练习和综合实验,知识点覆盖非常全面全面,值得一看。
思科网络技术学院专用教材的课本内练习和综合实验,知识点覆盖非常全面全面,值得一看。
西工大综合创作训练三实验二 计算器代码,实现大部分功能
实验需要的网络拓扑,配置命令,topo
2020年中考物理实验集中专项训练第1练声学实验含解析
2020年中考物理实验集中专项训练第2练光学实验含解析
2020年中考物理实验集中专项训练第7练力学实验_压强含解析
2020年中考物理实验集中专项训练第8练力学实验_浮力含解析
中考物理实验题专项训练题全套.doc
计算机基础训练实验报告Excel综合练习.pdf
2020年中考物理实验集中专项训练第4练力学实验_简单机械含解析
实验六 SQL 语句综合训练 三个综合训练都有, 综合练习一 设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生。现要建立关于系、学生、班级的数据库,关系模式为: 综合练习二 有某个...
2020年中考物理实验集中专项训练第10练电磁学实验串并联含解析
七年级生物上册实验题专项训练精选.doc
高三化学二轮化学实验选择专项训练.doc
2020年中考物理实验集中专项训练第3练力学实验_力与运动含解析
2020年中考物理实验集中专项训练第6练力学实验_测液体密度含解析
2020年中考物理实验集中专项训练第5练力学实验_测固体密度含解析