一个简单的Java音乐播放器
发布时间 - 2026-01-11 01:43:56 点击率:次本文实例为大家分享了Java音乐播放器展示的具体代码,供大家参考,具体内容如下
package KKMusic;
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.CardLayout;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.SourceDataLine;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import java.awt.event.ItemListener;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.awt.event.ItemEvent;
import javax.swing.JMenu;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.JSlider;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.MouseEvent;
public class Mp3 extends JFrame {
private JPanel contentPane;
File file;//声明文件对象
String filename;
JFileChooser chooser=new JFileChooser();//创建一个文件选择器
private JTextField xiaoxi;
boolean loop=false;
AudioClip adc;//声音音频剪辑对象
SourceDataLine line;
private FloatControl volume = null;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Mp3 frame = new Mp3();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Mp3() {
setTitle("\u97F3\u4E50\u64AD\u653E\u5668");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 265, 333);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu mnNewMenu = new JMenu("\u6587\u4EF6");
menuBar.add(mnNewMenu);
xiaoxi = new JTextField();
xiaoxi.setColumns(10);
xiaoxi.setText("欢迎使用本播放器");
JMenuItem dakai = new JMenuItem("\u6253\u5F00");
dakai.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int value=chooser.showOpenDialog(chooser);//接受文件选择器的状态
if(value==chooser.APPROVE_OPTION){
file=chooser.getSelectedFile();//返回选中文件
filename=file.getName();
String flag=filename;
xiaoxi.setText(flag);
try {
if(adc!=null)
adc.stop();
URL url=new URL("file:"+file.getPath());//创建资源定位
adc=Applet.newAudioClip(url);
//adc.play();
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
System.out.println("不能播放!");
}
}
}
});
mnNewMenu.add(dakai);
JMenuItem tuichu = new JMenuItem("\u9000\u51FA");
tuichu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
if(adc!=null)
adc.stop();
return ;
}
});
mnNewMenu.add(tuichu);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
JButton playbtn = new JButton("\u64AD\u653E");
playbtn.setHorizontalAlignment(SwingConstants.LEFT);
playbtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String flag="正在播放:"+filename;
if(adc==null){
flag="请选择播放的音乐";
xiaoxi.setText(flag);
return;
}
adc.play();
xiaoxi.setText(flag);
}
});
JButton stopbtn = new JButton("\u6682\u505C");
stopbtn.setHorizontalAlignment(SwingConstants.LEFT);
stopbtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
adc.stop();
String flag="停止播放音乐:"+filename;
xiaoxi.setText(flag);
}
});
JButton againbtn = new JButton("\u5FAA\u73AF");
againbtn.setHorizontalAlignment(SwingConstants.LEFT);
againbtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
loop =!loop;
String flag="";
; if(loop){
adc.play();
adc.loop();//循环播放
flag="循环播放:"+filename;
}
else{
adc.play();
flag="顺序播放"+filename;
}
xiaoxi.setText(flag);
}
});
GroupLayout gl_contentPane = new GroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addContainerGap()
.addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING, false)
.addComponent(xiaoxi, Alignment.LEADING)
.addGroup(Alignment.LEADING, gl_contentPane.createSequentialGroup()
.addComponent(playbtn, GroupLayout.PREFERRED_SIZE, 64, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(stopbtn, GroupLayout.PREFERRED_SIZE, 66, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(againbtn, GroupLayout.PREFERRED_SIZE, 64, GroupLayout.PREFERRED_SIZE)))
.addContainerGap(15, Short.MAX_VALUE))
);
gl_contentPane.setVerticalGroup(
gl_contentPane.createParallelGroup(Alignment.TRAILING)
.addGroup(gl_contentPane.createSequentialGroup()
.addComponent(xiaoxi, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addPreferredGap(ComponentPlacement.RELATED, 173, Short.MAX_VALUE)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(playbtn)
.addComponent(stopbtn)
.addComponent(againbtn))
.addContainerGap())
);
contentPane.setLayout(gl_contentPane);
}
}
运行结果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Java音乐播放器
# Java音乐播放
# Java播放器
# 教你轻松制作java音乐播放器
# java实现简单音乐播放器
# java 实现音乐播放器的简单实例
# java音乐播放器实现代码
# java音乐播放器编写源码
# Java实现的简单音乐播放器功能示例
# 简单实现java音乐播放器
# java实现音乐播放器完整代码(调整显示音量大小、调整进度、图片切换)
# 播放器
# 选择器
# 请选择
# 大家分享
# 正在播放
# 创建一个
# 具体内容
# 大家多多
# 不能播放
# contentPane
# file
# extends
# private
# text
# style
# chooser
# String
# filename
# JMenu
# JTextField
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
大连 网站制作,大连天途有线官网?
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
如何快速生成橙子建站落地页链接?
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
清除minerd进程的简单方法
js实现点击每个li节点,都弹出其文本值及修改
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Laravel怎么连接多个数据库_Laravel多数据库连接配置
如何获取上海专业网站定制建站电话?
如何实现建站之星域名转发设置?
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
Python正则表达式进阶教程_复杂匹配与分组替换解析
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
jQuery validate插件功能与用法详解
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
如何用免费手机建站系统零基础打造专业网站?
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
JavaScript如何实现音频处理_Web Audio API如何工作?
如何解决hover在ie6中的兼容性问题
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
简单实现Android文件上传
如何快速生成可下载的建站源码工具?
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
网站制作大概多少钱一个,做一个平台网站大概多少钱?
中山网站制作网页,中山新生登记系统登记流程?
Swift中swift中的switch 语句
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
详解vue.js组件化开发实践
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
如何用好域名打造高点击率的自主建站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
JS弹性运动实现方法分析
Laravel中的withCount方法怎么高效统计关联模型数量
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Windows Hello人脸识别突然无法使用
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
Swift中循环语句中的转移语句 break 和 continue
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?

