简介

介绍JAVA窗体程序调用图片、音频、字体三种静态资源的代码。使用这种方法调用静态资源,可以直接把静态资源打包到JAR包里。

在音频调用中,可能会由于Eclipse的原因报错,解决办法参见有关import sun.audio.AudioPlayer(或者其它文件)的问题

Demo

这是我封装的一个修改JFrame外观的类,在里面使用的就是接下来贴的方法。

github地址:https://github.com/kongtianyi/changeView

下载后用Eclipes打开运行即可。

效果图(自行脑补BGM):

函数定义

在一个类中(继承自JFrame的一个类)定义以下方法,很遗憾不能设置成静态方法跨类调用。


/*** 根据相对路径加载图片* @param path: 图片的相对路径* @return: 获取到的图片对象*/
public Image getImagePath(String path) {  Image image=null;  InputStream is = (InputStream) this.getClass().getClassLoader().getResourceAsStream(path);    try {image=ImageIO.read(is);} catch (IOException e) {e.printStackTrace();}return image;
} /*** 根据相对路径加载音频* @param path: 音频文件的相对路径* @return: 获取到的音频对象*/
public AudioStream getAudioPath(String resource){  InputStream is = (InputStream) this.getClass().getClassLoader().getResourceAsStream(resource);     AudioStream as = null;try {as = new AudioStream(is);} catch (IOException e) {e.printStackTrace();}return as;
} /*** 根据相对路径加载字体* @param path: 字体文件的相对路径* @return: 获取到的字体对象*/
public Font getDefinedFont(String path) {  if (definedFont == null) {  InputStream is = null;  BufferedInputStream bis = null;  try {  is = (InputStream) this.getClass().getClassLoader().getResourceAsStream(path);            bis = new BufferedInputStream(is);  definedFont = Font.createFont(Font.TRUETYPE_FONT, bis);  definedFont = definedFont.deriveFont(25f);  definedFont = definedFont.deriveFont(Font.BOLD);} catch (FontFormatException e) {  e.printStackTrace();  } catch (IOException e) {  e.printStackTrace();  } finally {  try {  if (null != bis) {  bis.close();  }  if (null != is) {  is.close();  }  } catch (IOException e) {  e.printStackTrace();  }  }  }  return definedFont;
} 

调用方法

/*图片*/
logo = getImagePath("resource/image/logo.png");
logoIcon = new ImageIcon(logo);
logoLabel = new JLabel(logoIcon);/*字体*/
titel = new JLabel(name);
titel.setFont(getDefinedFont("resource/font/叶根友毛笔特色简体.ttf"));/*音乐*/
backMusic = getAudioPath("resource/music/竹苑情歌.au");
AudioPlayer.player.start(backMusic);  /*播放背景音乐*/

关于txt

如果仅仅是读取的话,可以考虑用上述方法打入到JAR包中,但是如果涉及到修改TXT文件的内容,就不能再打入到JAR里了,那么操作的方法就是,在源码中需要操作文件的地方直接写文件名,没有路径,然后把文件保存在JAR文件的同一目录下,就可以实现文件的操作了。当然,其它资源文件也可以用这种方法访问,但是在一些具体的情况下,还是将资源文件打入到JAR包会比较方便。

JAVA窗体程序调用图片、音频、字体资源相关推荐

  1. java窗体中添加图片_在java窗体程序中添加图片的方法

    在java窗体程序中添加图片的方法 发布时间:2020-06-16 11:24:13 来源:亿速云 阅读:148 作者:Leah 这篇文章主要为大家详细介绍了在java窗体程序中添加图片的方法,图文详 ...

  2. java 窗体添加背景图片_Java Swing实现窗体添加背景图片的2种方法详解

    本文实例讲述了java Swing实现窗体添加背景图片的2种方法.分享给大家供大家参考,具体如下: 在美化程序时,常常需要在窗体上添加背景图片.通过搜索和测试,发现了2种有效方式.下面分别介绍. 1. ...

  3. java调用插件_从任何java应用程序调用自己的eclipse插件方法

    我想做以下事情: 创建一个自己的Eclipse插件,(例如)只有一个方法"sayHello"显示消息"hello world". 所以这么好. 但现在我想让安装 ...

  4. java插入图片_如何在java窗体程序中添加图片

    打开eclipse,创建一个java工程项目,创建完后在src下新建一个类Window,由于要插入图片,所以还在工程目录下创建一个文件夹imgs,里面放了一张60*60的图片,创建后的工程目录和图片, ...

  5. java窗体添加背景图片_Java项目实战之实战之天天酷跑(四):游戏主界面

    接上文,本文将实现游戏主界面,功能如下: 移动的背景图片.动态的玩家.玩家的移动功能.五种障碍物持续出现.玩家和障碍物的碰撞.暂停.继续功能. 首先,看一下整体效果: 动图实在太大,几秒钟的 Gif ...

  6. java在程序中加入音频_在任意Java程序中播放音频

    音频文件有多种格式.Java程序能够播放WAV,AIFF,MIDI,AU和RMF格式的声音文件. 要在Java中播放音频文件,应该先为声音文件创建一个音频剪辑对象(audio clip object) ...

  7. java窗体程序秒表,帮忙解释一个Java小程序(秒表)

    妄灸 回答时间:2019-12-05 向TA提问 package test; import javax.swing.*; import java.awt.event. ActionListener; ...

  8. java swing开发窗体程序开发(一)GUI编程

    Java SWing就是java提供的一个类库专门用于开发窗体程序的,相对于C#的winform,java swing的开发要比C#更加麻烦,他不像C#拥有可视化的界面编辑工具 而是需要像QT一样纯代 ...

  9. C程序中图片调用技巧(程序来自潜艇大站游戏)

    C程序中图片调用技巧 摘要:介绍如何在C程序中调用图片,这将有助于加强C程序的界面的美观性. 关键词: VGA .BMP.13h.h.TIMER.H.Logo. 一.问题的引入:   C语言使用愈来愈 ...

最新文章

  1. QT:(4)解决在VS15下配置QT后没有QT GUI Application选项
  2. 数据结构-荷兰国旗问题
  3. timer定时器_拾遗Timer定时器
  4. [tyvj1935 Poetize3]导弹防御塔 (二分图多重匹配)
  5. Import project出现Select at least one project的解决方法
  6. 从零开始学习jQuery (九) jQuery工具函数 【转】
  7. 上传书籍进度信息到服务器...,使用HttpWebRequest实现大文件上传资料.pdf
  8. jQuery学习整理 (3) 使用jQuery操作元素的属性与样式
  9. 分子动力学模拟需要掌握的理论、语言和软件
  10. 2021年计算机保研夏令营回忆(中科大、信工所、南开、天大)
  11. VxWorks Fuzzing 之道:VxWorks 工控实时操作系统漏洞挖掘调试与利用揭秘
  12. mongo报socket exception raised
  13. Edman降解蛋白测序法的基本步骤解析:耦合和裂解过程
  14. stm32cubeIDE STLINK连接SWD接口调试,启动GDB server失败的处理
  15. Ubuntu 14.04 LTS 安装配置搜狗拼音输入法
  16. pyspark:RDD和DataFrame
  17. 模型微调(finetune)
  18. iPhone11霸占高端手机市场,安卓手机难望其项背
  19. 万物本业互联,一切皆可编程_如何保持专注-互联世界中无干扰的编程
  20. 科普系列—低速容错CAN的容错机制介绍

热门文章

  1. 有人感兴趣做兼职JAVA程序员吗? 地域不限,在家工作.
  2. 自然语言处理笔记11-哈工大 关毅
  3. 思维导图工具有哪些?快来看看这些工具
  4. 团队造假的热门币HITChain 到底怎么样?
  5. 焦耳小偷-Joule_thief原理分析
  6. Java SE note01
  7. 注意力机制详解系列(四):混合注意力机制
  8. 重构之美-跨越Web标准,触碰语义网[开门见山:Microformat]
  9. 去除lt;!--[if gte mso 9]......lt;![endif]--gt;字符串
  10. vlookup 双字段