/*

* 本程序实现以下效果:

* 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 中图片和声音文件的加载相关推荐

  1. java 多个类共用属性_java中读写Properties属性文件公用方法详解

    前言 大家都知道Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改 ...

  2. Android中的缓存处理及异步加载图片类的封装

    一.缓存介绍: (一).Android中缓存的必要性: 智能手机的缓存管理应用非常的普遍和需要,是提高用户体验的有效手段之一. 1.没有缓存的弊端: 流量开销:对于客户端--服务器端应用,从远程获取图 ...

  3. java web配置dll文件_JavaWeb项目中dll文件动态加载方法解析(详细步骤)

    相信很多做Java的朋友都有过用Java调用JNI实现调用C或C++方法的经历,那么Java Web中又如何实现DLL/SO文件的动态加载方法呢.今天就给大家带来一篇JAVA Web项目中DLL/SO ...

  4. java动态加载类 框架_java运用RMI框架类的动态加载不成功

    最近在看<java网络编程精解>,第11章中用RMI动态加载类,可怎么试都不成功,求大神解答 1. 我先在C盘下启动了rmiregistry注册表,如果部署成功注册表应该会从codebas ...

  5. 一文了解 Java 中 so 文件的加载原理

    前言 无论是 Android 开发者还是 Java 工程师应该都有使用过 JNI 开发,但对于 JVM 如何加载 so.Android 系统如何加载 so,可能鲜有时间了解. 本文通过代码.流程解释, ...

  6. android中常用的下拉刷新加载更多_如何设计“加载流程”

    为什么要处理"加载"状态 在页面拉取数据.或提交某些数据时,需要一定的时间来等待服务端返回结果.如果不处理加载,用户可能会看到一片空白,以为你的软件出错:或者因没有建立心理预期,被 ...

  7. 如何显示服务器上excel,如何在HTML中使用OWC正确显示、加载服务器端的excel文件呢?...

    如何在HTML中使用OWC正确显示.加载服务器端的excel文件呢? 我的服务器端是unix操作系统,应用是java写的 我试了很多方法,都无法将excel在浏览器中以只读的形式显示出来,环境是XP  ...

  8. 【Flutter】Flutter 混合开发 ( 混合开发中 Flutter 的 热重启 / 热加载 )

    文章目录 前言 一.混合开发中启用 Flutter 的 热重启 / 热加载 二.混合开发中 Flutter 的 热重启 / 热加载 命令测试 三.指定混合应用连接的设备 四.相关资源 前言 上一篇博客 ...

  9. 微信小程序中实现瀑布流布局和无限加载

    瀑布流布局是一种比较流行的页面布局方式,最典型的就是Pinterest.com,每个卡片的高度不都一样,形成一种参差不齐的美感. 在HTML5中,我们可以找到很多基于jQuery之类实现的瀑布流布局插 ...

最新文章

  1. Python的while循环
  2. Unity3D心得分享
  3. 内存存储器和外存储器的异同
  4. 一起学react day1
  5. 我和我的广告前端代码(六):webpack工程合并、也许我不需要gulp
  6. Android之NetworkOnMainThreadException异常
  7. php 代码 自动检查工具下载,PHP_CodeSniffer安装和使用教程(自动代码检查规范工具)...
  8. threadlocal存连接对象的目的_终于懂了ThreadLocal,不再害怕面试官问了
  9. SQL 用一个表的数据更新另一张表
  10. nc65 单据非向导开发 源代码_【免费毕设】ASP.NETIT产品网上物流管理信息系统的设计与实现(源代码+论文)...
  11. 人情味,让你的内容脱颖而出
  12. [汇编语言]立即数寻址和寄存器寻址
  13. 从安卓/linux固件反编译出dtb和dts
  14. Android——ECG心电图的绘制实现
  15. PS切图 - (快捷键)操作方法
  16. 语音/视频转文字的工具选择它-不仅仅是好用还免费
  17. shell入门学习笔记-12-命令详解: echo与printf
  18. 一、电脑端实现单片机与ESP8266的通信
  19. 软件著作权和专利的区别
  20. 关于火绒安装,出现版本过低问题的解决办法

热门文章

  1. 超级仿制药行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  2. linux那个系统支持开发,求问如何确定centos支持哪个版本的gcc
  3. usercontroller.java,springboot controller 参数绑定
  4. 汽车在转型!福特中国的架构实践
  5. 苹果“撞上”反垄断,围墙花园能否坚挺?
  6. 祝贺!吴晟成为 Apache 软件基金会首位中国董事!
  7. 没有弃用 Sun 拥抱 HP/Linux,亚马逊或已倒闭!
  8. 新一代视频编解码标准正式公布!
  9. 关于 Java 字符串的全部,都在这份手册里了
  10. 京东:618 期间遭「黑公关」恶意抹黑;Adobe 回应“杀死Flash”;Bootstrap 5.0 Alpha 发布 |...