论坛首页 Java企业应用论坛

希望能抛砖引玉:案例1图形按钮

浏览 3425 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-03  
   希望能抛砖引玉:案例1图形按钮


案例1图形按钮
本文摘自 图书《JAVA案例开发集锦.pdf》
本案例是一个用Java Applet实现页面响应鼠标事件的例子。实现了鼠标移入、移出、点击事件的响应功能。程序运行后,界面如图1-1所示。
把鼠标移到图片上面,效果如图1-2所示,并伴随播放声音。如果把鼠标移出,将返回图1-1的状态。

单击图片,程序会再次更改图片的显示效果,如图1-3所示。

制作要点
1.获取HTML中的param的参数值。
2.Applet的声音播放AudioClip类的使用。
3.鼠标事件的监听
4.MediaTracker类的使用
步骤详解
本例采用了Java小应用程序Java Applet,Java Applet首先需要嵌入到网页中,执行时需下载到用户本地进行执行,用户端需要安装Java虚拟机。
1.获取HTML中的param的参数值。
我们先来看一下HTML的源代码。
<applet code=ImgButton.class width=75 height=75>
<param name=soundA value="midiA.mid">
<param name=soundB value="midiB.mid">
<param name=Image1 value="button1.gif">
<param name=Image2 value="button2.gif">
<param name=Image3 value="button3.gif">
<param name=URL value=http://www.dzwww.com>
</applet>
我们需要在Java中取得这些参数,就要用java.applet.Applet类的方法:
public String getParameter(String name)
例如Applet标记在HTML网页中是这样的:
<applet code="Clock" width=50 height=50>
<param name=Color value="blue">
</applet>
我们在程序中调用方法getParameter(”Color“),这个方法将返回值”blue“。

String colorStr = ”“;
colorStr = getParameter(”Color“);
if(colorStr==null){
colorStr="blue" ;
}
2.Applet的声音播放AudioClip类的使用。
图像格式各种各样,如BMP、GIF和JPEG等。声音文件也一样,WAV和AU是最常用的两种声音文件。在JDK1.2之前Java仅支持AU文件,从JDK1.2开始,Java提供了对WAV、MIDI等声音文件的支持。
使用Applet播放声音时,需首先定义AudioClip对象,getAudioClip方法能把声音赋予AudioClip对象,如果仅想播放一遍声音,应调用AudioClip类的play方法;如果想循环播放,应选用AudioClip类的loop方法。
sound1 = getAudioClip(getDocumentBase(),param);
sound1.play(); //播放一次
sound1.loop(); //循环播放

3.鼠标点击事件的监听。
类java.awt.event.MouseListener共有以下5个方法来实现鼠标点击事件:
方法摘要
void mouseClicked(MouseEvent e)当用户按下并松开鼠标按钮时发生。
用户在选择或双击图标的时候通常会点击鼠标按钮,如果在松开鼠标之前移 动鼠标,点击不会导致鼠标相应事件出现。
因为点击鼠标是按下鼠标和松开鼠标的结合,在事件分配给mouseClicked()之前,mousePressed()和mouseReleased()方法已同时被调用。

void mouseEntered(MouseEvent e)当鼠标离开当前组件并进入所监听的组件时激活事件。

void mouseExited(MouseEvent e)当鼠标离开所监听的组件时发生。

void mousePressed(MouseEvent e)当用户按下鼠标按钮时发生。

void mouseReleased(MouseEvent e)当用户松开鼠标按钮时发生。

①处理鼠标移入事件:
offG.drawImage(img1,0,0,width,height,this);
②处理鼠标按钮松开事件:
offG,drawImage(img2,0,0,width,height,this);
repaint();
soundB.play();
getAppletContext().showDocument(url);
③单击鼠标左键事件:
offG.drawImage(img3,0,0,width,height,this);
repaint();
soundA.play();
System.out.println("soundB play")
4..MediaTracker 类的使用。
Java专门提供了用于跟踪包括图像和声音等多媒体对象的ImageObserver类和Media-Tracker类。
在本书程序中主要用到的是跟踪多幅图像状态的MediaTracker类。

imageTracker = new MediaTracker(this);
try {
//开始装载所有图片,多媒体对象imageTracker会跟踪所有指定图片的状态。这个方法会等待,直到所有指定的图片都转载完成,可能会抛出异常
InterruptedException
imageTracker.waitForID(0);
} catch (InterruptedException e) {
}
MediaTracker的主要方法及用途
返回类型 方法 用途
MediaTracker 构造方法,为指定的组件comp创建一个
(Component comp) MediaTracker对象


剩下的步骤:
  • 描述: 这些是剩下的步骤
  • 大小: 434.4 KB
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics