希望能抛砖引玉:案例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对象

剩下的步骤:

希望能抛砖引玉:案例1图形按钮相关推荐

  1. EXCEL表格-图形按钮的创建(超链接)

    ❤关注我,不迷路❤ 点击进入EXCEL综合应用场景专栏 为了方便在使用EXCEL表格时一些界面的跳转,我们可以在表格中创建图形按钮,有VBA基础的小伙伴肯定会想到用VBA开发控件可以实现,但弊端在于必 ...

  2. Android开发之不规则图形按钮响应

    这是我在网上找了不少资料后,总结下来的简单不规则图形按钮制作方法. 如果我们想在安卓开发时设计漂亮的按钮,很可能会用到图片按钮,但是图片按钮响应区域是长方形的,比如下图 如果里面的月亮和云彩是用图片按 ...

  3. 使用 Button 类在 XNA 中创建图形按钮(九)

    平方已经开发了一些 Windows Phone 上的一些游戏,算不上什么技术大牛.在这里分享一下经验,仅为了和各位朋友交流经验.平方会逐步将自己编写的类上传到托管项目中,没有什么好名字,就叫 WPXN ...

  4. DevExpress的图形按钮菜单栏控件WindowsUIButtonPanel的布局、使用和设置按钮的点击事件

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  5. 火山PC(火山视窗)图形按钮制作器教程

    前言: 自定义方式制作图形按钮素材,涉及画板操作.动态创建等知识. 需要安装最新火山模块2020-12-18版 一.配置模块 右键配置-勾选火山模块,还调用了一个高级图形按钮文件. 二.界面布局 基本 ...

  6. 火山视窗按钮,图形按钮,标签,编辑框,图片框,进度条,滑块条组件介绍

    本源码转载自利快云https://www.lkuaiy.com/ 火山视窗常用基础组件操作(上)     一.按钮 1.在基本组件中就可以看到本组件,主要用于鼠标点击后执行某些操作. 2.选中组件后右 ...

  7. 用java的事件监听机制实现一个简单的画板应用:通过选择图形按钮和颜色按钮来画出自己想画的图形:直线、空心矩形、圆形、折线、多边形、圆角矩形、弧线、曲线、喷枪

    今天做一个简单的画板,完整代码附在文章末尾处. - 功能:通过选择图形按钮和颜色按钮来画出自己想画的图形. - 界面展示: - 思路: 1.做一个可视化界面:创建JFrame对象,并设置Title.S ...

  8. 1.4_10 Axure RP 9 for mac 高保真原型图 - 案例9 【按钮】单选按钮组

    相关链接 目录 Axure中文学习网 AxureShop AxureShop-QA 案例目标  1. 了解 单选 功能的实现原理  2. 掌握 按钮 的常见使用方式  3. 掌握 指定单选按钮的组 功 ...

  9. React 基础案例 | 支持左右按钮点击查看信息的卡片组件(二)

    一.开篇 大家好,本篇文章小编将和大家一起实现一个用左右点击的方式翻看卡片信息的组件,这个组件很常用,一般会在网站上显示案例或团队成员的信息.通过本案例我们继续练习 useState Hook 在实际 ...

最新文章

  1. 美国进入紧急状态:谷歌投入1700名工程师上阵抗疫,马斯克称车祸比新冠病毒危险...
  2. CTF---密码学入门第一题 这里没有key
  3. input标签内容改变的触发事件
  4. 学习笔记 Keras:一些基本概念
  5. 《江南百景图》,解谜经营背后的逻辑
  6. MySQL使用concat实现连接
  7. 使用 HttpLib 来访问 Web 服务
  8. 解决Docker容器时区不一致的问题
  9. 鼎微方案导航一体机刷机包_SMB方案之星 | 海康威视人脸门禁一体机产品应用方案集锦...
  10. java 格式化字符串
  11. php什么时候面向对象,php什么时候使用面向对象
  12. 实现关联条件的casewhen效果
  13. wowza拉流和推流接口备忘
  14. jQuery 3D图片切换动画
  15. jQuery-对联广告
  16. 磊科路由器dns服务器老要修复,路由器dns异常解决方法
  17. Python Tkinter 下载器 多任务下载+多线程下载+多任务断点续存
  18. 计算机登陆后如何防止自动注销,在win7系统中经常自动注销的解决方法介绍
  19. 在Linux上测试网络的命令之3----基础网络命令(netstat\ss)
  20. 深度学习AI美颜系列---人脸数据增强

热门文章

  1. iPad2使用心得和应用推荐(不定期更新)
  2. 转载《有的放矢》的一些金句
  3. 一目了然的GIt常用操作
  4. 几种常见的摄影构图方法,让你拍起…
  5. UI基础回顾-paint画笔
  6. 微信公众平台的php示例,微信公众平台PHP示例一
  7. github 删除历史提交记录的可行方案
  8. 1:1三相隔离变压器替代解决方案
  9. Google推荐图片加载库Glide使用总结
  10. iPhone/iPad通过iTune更新/恢复固件发生未知错误1015 、1013、3149的原因和解决方法