希望能抛砖引玉:案例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
分享到:
相关推荐
- **兼容性**:考虑不同操作系统和屏幕分辨率下的兼容性问题,确保按钮在各种环境下都能正常显示。 综上所述,这段源代码提供了一个实现XP风格按钮的基础框架,开发人员可以根据实际需求对其进行扩展和优化,从而...
本文通过三个典型的案例,深入剖析了企业风险管理中的疏漏及其可能导致的严重后果。这些案例揭示了企业法律风险管理的重要性,尤其是在当前金融危机的背景下。 案例一揭示了企业内部管理漏洞可能导致的贪腐问题。在...
抛砖引玉:一种改善微信云开发 , 开发者体验的思路 本篇文章写于 2021-02-27 鄙人才疏学浅,如有谬误,欢迎指正 更多代码的细节在 中 前言 小程序云开发,作为一种 BaaS 场景,在过去的一段时间内发展非常的迅猛。 ...
带着这些问题,我们尝试写了这样一篇文章,希望能抛砖引玉,引起大家一些思考和共鸣。感谢南靖同学为本文编写了5.1节的案例,感谢西壁的review。本文包括七个小节:1、什么是数据湖;2、数据湖的基本特征;3、数据湖...
下面是我总结的一点见解,希望抛砖引玉,给大家一点启示。按钮分为两个部分:按钮文字按钮形状这主要适用在购物网站,使用一种紧迫感的词语更可能让用户采取行动。在按钮上加“现在””立即““马上”等文字,能大大...
先分享简单的结论,再展开分析。想偷懒的朋友,看完这个表格就可以了。后面的分析有点复杂。 所有权 ...我相信,数字资产研究院的这次活动,会成为中国迈向数字经济大国的过程中的一次重要历史事件。...
WPF是微软新一代图形系统,运行在.NET Framework 3.0架构下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。基于DirectX 9/10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大...
### SAS语言基础知识详解 #### 一、SAS简介 SAS (Statistical Analysis System) 是一种广泛应用于数据分析、商业智能、预测模型等领域...希望本文能为初学者提供一个良好的起点,并激发他们进一步探索SAS的强大功能。
### Linux环境下Qt4图形界面与MySQL编程 #### 前言 随着计算机技术的发展,Linux作为一款免费且开源的操作系统,被广泛应用于服务器和个人电脑领域。为了满足用户对图形界面的需求,Qt4作为一种高效的跨平台应用...
### Linux环境下Qt4图形界面与MySQL编程 #### 前言 随着计算机技术的发展,图形用户界面(Graphical User Interface, GUI)已经成为软件开发中的一个重要组成部分。对于Linux平台而言,掌握一种强大的GUI编程工具是...
另外,我新加了一种Graphic按钮类型,该类型按钮显示4个图片:通常状态图片、按下图片、鼠标移动在按钮上时的图片、Disable时图片,并且在这种类型下,没有按钮边框,可以让开发人员轻松灵活地制作各种按钮效果。...
【知识点解析】 本文的故事“田婴抛砖引玉荐王后”源于...综上所述,“田婴抛砖引玉荐王后”的故事,不仅是一个历史事件,更是一则关于政治智慧、决策策略和人际关系处理的经典案例,值得我们在现代生活中借鉴和学习。
文章希望这些案例分析能够为同行业的其他企业带来参考,起到抛砖引玉的作用。 综上所述,本案例分析强调了PCB行业在节能减排方面的必要性和紧迫性,通过具体的技术改造案例详细分析了节能改造的有效性和经济性,并...
SAS语言抛砖引玉》 任何想学习和了解SAS语言的人,学习SAS的好材料,确实很有用。
抛砖引玉 :1:指定并输出阿Q的C语言成绩。 #include<stdio.h> /*引入库函数*/ int main() /*主函数*/ { int iScore; /*定义整型变量存放成绩*/ iScore=92; /*将92赋值给变量iScore*/ printf("阿Q的C语言成绩...
在"测试分享第一周抛砖引玉"的主题下,我们可以从提供的资源中学习到更多关于接口测试的实践知识。描述中的"fantian_/article/details/113943753"可能指向一个详细的博客文章或文档,其中包含了丰富的接口测试策略和...