一个简单的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  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?