java点击图片发出声音_Java 中图片和声音文件的加载
/*
* 本程序实现以下效果:
* 1、界面显示一个按钮,按钮初始为红色。
* 2、将鼠标移到按钮上时,按钮呈蓝色。
* 3、点击鼠标,有声音效果。
* 4、鼠标离开按钮时,按钮恢复成红色。
*/
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class ImgBtn{
private JFrame frm = null; // 框架窗体
private Container contentPane = null; // 内容窗格
private JLabel imgLab = null;
private ImageIcon redBtn = null; // 红色按钮图片
private ImageIcon blueBtn = null; // 蓝色按钮图片
private AudioClip ac = null; // 声音文件
public ImgBtn(){
frm = new JFrame("图形按钮");
contentPane = frm.getContentPane();
redBtn = new ImageIcon(frm.getClass().getResource("/images/btn_red.png"));
blueBtn = new ImageIcon(frm.getClass().getResource("/images/btn_blue.png"));
ac = Applet.newAudioClip(frm.getClass().getResource("/sounds/ding.wav"));
imgLab = new JLabel(redBtn); // 初始为红色按钮
contentPane.add(imgLab);
// 鼠标事件
frm.addMouseListener(new MouseAdapter(){
// 鼠标移到按钮上
public void mouseEntered(MouseEvent e){
imgLab.setIcon(blueBtn); // 变成蓝色按钮
}
// 鼠标移出按钮
public void mouseExited(MouseEvent e){
imgLab.setIcon(redBtn); // 变成红色按钮
}
// 单击鼠标
public void mouseClicked(MouseEvent e){
ac.play(); // 播放声音
}
});
frm.setSize(new Dimension(NULL,150)); // 设置窗体大小
frm.setResizable(false); // 禁止用户调整窗体大小
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 使用 System.exit() 退出程序
frm.setLocationRelativeTo(null); // 设置窗体居中
frm.setVisible(true); // 设置窗体可见
}
public static void main(String [] args){
new ImgBtn();
}
}
程序运行效果如下:
其中,MANIFEST.MF 文件是为了打包用的,其内容如下:
Manifest-Version: 1.0
Created-By: C.S.Ricen
Main-Class: ImgBtn
程序打包的方法如下(这里将图片和声音文件也一并打包):
打包生成的 Jar 文件其实是一个可执行文件,如果机子上有安装 JRE 的话,对于 Windows 用户可以通过双击直接运行;对于 Linux 用户需要赋予 Jar 文件可执行的权限。
java点击图片发出声音_Java 中图片和声音文件的加载相关推荐
- java 多个类共用属性_java中读写Properties属性文件公用方法详解
前言 大家都知道Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改 ...
- Android中的缓存处理及异步加载图片类的封装
一.缓存介绍: (一).Android中缓存的必要性: 智能手机的缓存管理应用非常的普遍和需要,是提高用户体验的有效手段之一. 1.没有缓存的弊端: 流量开销:对于客户端--服务器端应用,从远程获取图 ...
- java web配置dll文件_JavaWeb项目中dll文件动态加载方法解析(详细步骤)
相信很多做Java的朋友都有过用Java调用JNI实现调用C或C++方法的经历,那么Java Web中又如何实现DLL/SO文件的动态加载方法呢.今天就给大家带来一篇JAVA Web项目中DLL/SO ...
- java动态加载类 框架_java运用RMI框架类的动态加载不成功
最近在看<java网络编程精解>,第11章中用RMI动态加载类,可怎么试都不成功,求大神解答 1. 我先在C盘下启动了rmiregistry注册表,如果部署成功注册表应该会从codebas ...
- 一文了解 Java 中 so 文件的加载原理
前言 无论是 Android 开发者还是 Java 工程师应该都有使用过 JNI 开发,但对于 JVM 如何加载 so.Android 系统如何加载 so,可能鲜有时间了解. 本文通过代码.流程解释, ...
- android中常用的下拉刷新加载更多_如何设计“加载流程”
为什么要处理"加载"状态 在页面拉取数据.或提交某些数据时,需要一定的时间来等待服务端返回结果.如果不处理加载,用户可能会看到一片空白,以为你的软件出错:或者因没有建立心理预期,被 ...
- 如何显示服务器上excel,如何在HTML中使用OWC正确显示、加载服务器端的excel文件呢?...
如何在HTML中使用OWC正确显示.加载服务器端的excel文件呢? 我的服务器端是unix操作系统,应用是java写的 我试了很多方法,都无法将excel在浏览器中以只读的形式显示出来,环境是XP ...
- 【Flutter】Flutter 混合开发 ( 混合开发中 Flutter 的 热重启 / 热加载 )
文章目录 前言 一.混合开发中启用 Flutter 的 热重启 / 热加载 二.混合开发中 Flutter 的 热重启 / 热加载 命令测试 三.指定混合应用连接的设备 四.相关资源 前言 上一篇博客 ...
- 微信小程序中实现瀑布流布局和无限加载
瀑布流布局是一种比较流行的页面布局方式,最典型的就是Pinterest.com,每个卡片的高度不都一样,形成一种参差不齐的美感. 在HTML5中,我们可以找到很多基于jQuery之类实现的瀑布流布局插 ...
最新文章
- Python的while循环
- Unity3D心得分享
- 内存存储器和外存储器的异同
- 一起学react day1
- 我和我的广告前端代码(六):webpack工程合并、也许我不需要gulp
- Android之NetworkOnMainThreadException异常
- php 代码 自动检查工具下载,PHP_CodeSniffer安装和使用教程(自动代码检查规范工具)...
- threadlocal存连接对象的目的_终于懂了ThreadLocal,不再害怕面试官问了
- SQL 用一个表的数据更新另一张表
- nc65 单据非向导开发 源代码_【免费毕设】ASP.NETIT产品网上物流管理信息系统的设计与实现(源代码+论文)...
- 人情味,让你的内容脱颖而出
- [汇编语言]立即数寻址和寄存器寻址
- 从安卓/linux固件反编译出dtb和dts
- Android——ECG心电图的绘制实现
- PS切图 - (快捷键)操作方法
- 语音/视频转文字的工具选择它-不仅仅是好用还免费
- shell入门学习笔记-12-命令详解: echo与printf
- 一、电脑端实现单片机与ESP8266的通信
- 软件著作权和专利的区别
- 关于火绒安装,出现版本过低问题的解决办法
热门文章
- 超级仿制药行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- linux那个系统支持开发,求问如何确定centos支持哪个版本的gcc
- usercontroller.java,springboot controller 参数绑定
- 汽车在转型!福特中国的架构实践
- 苹果“撞上”反垄断,围墙花园能否坚挺?
- 祝贺!吴晟成为 Apache 软件基金会首位中国董事!
- 没有弃用 Sun 拥抱 HP/Linux,亚马逊或已倒闭!
- 新一代视频编解码标准正式公布!
- 关于 Java 字符串的全部,都在这份手册里了
- 京东:618 期间遭「黑公关」恶意抹黑;Adobe 回应“杀死Flash”;Bootstrap 5.0 Alpha 发布 |...