首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

music-player-master.zip

行业研究 3.16MB 16 需要积分: 1
立即下载

资源介绍:

music-player-master.zip
package com.ct.music; import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import java.applet.AudioClip; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.net.MalformedURLException; import java.net.URL; /** * @ClassName MusicPlayer * @Description TODO * @Author caoti * @Date 2020/3/19 18:00 * @since Jdk 1.8 **/ public class MusicPlayer extends JFrame { public static final String DEFAULT_MUSIC_FILE_PATH = "music/";//音乐默认存储路径 private JLabel playingMusicLabel;//用于显示正在播放的音乐 private JButton playButton;//播放、停止按钮 private Icon playIcon = new ImageIcon("images/play.gif");//播放按钮的图片 private Icon stopIcon = new ImageIcon("images/stop.gif");//停止按钮的图片 private JList musicJList; private AudioClip audioClip; private boolean playState = false;//播放状态 false代表停止状态 true代表播放状态 public static void main(String[] args){ new MusicPlayer(); } public MusicPlayer(){ this.setSize(400,600);//大小 this.setLocationRelativeTo(null);//位置 屏幕中心 this.setTitle("音乐播放器"); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setContentPane(createContentPanel()); this.setResizable(false); this.setVisible(true); } private Container createContentPanel() { JPanel contentPanel = new JPanel(new BorderLayout()); contentPanel.add(createNothPanel(),BorderLayout.NORTH); contentPanel.add(createSouthPanel(),BorderLayout.SOUTH); return contentPanel; } private Component createNothPanel() { JPanel nothPanel = new JPanel(); musicJList = new JList<>(); //musicJList.setPreferredSize(new Dimension(370,500)); musicJList.setCellRenderer(new DefaultListCellRenderer(){ @Override public void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.lightGray); g.drawLine(0, getHeight() - 1, getWidth(), getHeight() - 1); } }); musicJList.setFixedCellHeight(50); musicJList.setListData(this.listMusicName());// 设置选项数据 此处为音乐列表 musicJList.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { play(); } }); JScrollPane scrollPane = new JScrollPane(){ @Override public Dimension getPreferredSize() { return new Dimension(370, 500);//括号内参数,可以根据需要更改 } }; scrollPane.getViewport().add(musicJList); nothPanel.add(scrollPane); return nothPanel; } private Component createSouthPanel() { JPanel southPanel = new JPanel(new BorderLayout()); southPanel.setBorder(BorderFactory.createRaisedBevelBorder()); southPanel.add(createPlayingMusicLabelPanel(),BorderLayout.WEST); southPanel.add(createPlayButtonPanel(),BorderLayout.EAST); return southPanel; } private Component createPlayingMusicLabelPanel() { JPanel panel = new JPanel(); playingMusicLabel = new JLabel("暂无正在播放的音乐"); playingMusicLabel.setSize(350,50); panel.add(playingMusicLabel); return panel; } private Component createPlayButtonPanel() { JPanel panel = new JPanel(); playButton = new JButton(playIcon); playButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (playState == false){ play(); }else{ stop(); } } }); panel.add(playButton); return panel; } /** * @description 扫描指定目录music下的所有音乐 * 暂时未加过滤器 默认扫描此目录下所有文件 * @author caoti */ public String[] listMusicName(){ //final String path = "music"; File file = new File(DEFAULT_MUSIC_FILE_PATH); String[] fileNames = file.list(); return fileNames; } /** * @description 播放音乐 * @author caoti */ public void play(){ String musicFileName; //如果直接点击播放按钮 默认取列表第一个音乐播放 否则选中那个播放哪个 if (musicJList.getSelectedValue()==null){ if (musicJList.getModel().getElementAt(0)!=null){ musicFileName = musicJList.getModel().getElementAt(0); }else{ JOptionPane.showMessageDialog(this, "暂无音乐可播放", "温馨提示", JOptionPane.INFORMATION_MESSAGE); return; } }else{ musicFileName = musicJList.getSelectedValue(); } this.initAudioClip(DEFAULT_MUSIC_FILE_PATH,musicFileName); audioClip.play();//播放 playingMusicLabel.setText(musicFileName);//正在播放标签显示当前播放的音乐 playButton.setIcon(stopIcon);//播放按钮变为停止按钮 playState = true;//播放状态 } /** * @description 停止播放 * @author caoti */ public void stop(){ if (audioClip != null){ audioClip.stop(); playButton.setIcon(playIcon);//停止按钮变为播放按钮 playState = false;//停止状态 }else{ JOptionPane.showMessageDialog(this, "停止播放发生异常,请重启应用", "温馨提示", JOptionPane.INFORMATION_MESSAGE); } } /** * @description 初始化音频剪辑对象 * @author caoti */ public void initAudioClip(String musicFilePath,String musicFileName){ try { URL url = new URL("file:"+musicFilePath + musicFileName);// 创建资源定位符 if (audioClip==null){ audioClip = JApplet.newAudioClip(url); } } catch (MalformedURLException e) { System.out.println("不是音频文件"+e.getMessage()); } } }

资源文件列表:

music-player-master.zip 大约有11个文件
  1. music-player-master/
  2. music-player-master/images/
  3. music-player-master/images/play.gif 528B
  4. music-player-master/images/stop.gif 215B
  5. music-player-master/music/
  6. music-player-master/music/馅儿 _ neko - 迷人的危险.mp3 3.19MB
  7. music-player-master/src/
  8. music-player-master/src/com/
  9. music-player-master/src/com/ct/
  10. music-player-master/src/com/ct/music/
  11. music-player-master/src/com/ct/music/MusicPlayer.java 6.27KB
0评论
提交 加载更多评论
其他资源 SQLServer 对 SQL 标准的支持情况
SQLServer 对 SQL 标准的支持情况
SQLServer 对 SQL 标准的支持情况 SQLServer 对 SQL 标准的支持情况 SQLServer 对 SQL 标准的支持情况
(源码)基于Linux系统编程手册的时间与文件操作项目.zip
# 基于Linux系统编程手册的时间与文件操作项目 ## 项目简介 本项目是基于《LinuxUnix 系统编程手册》的学习笔记,专注于时间处理和文件操作的实现。项目涵盖了多个章节的内容,通过实际代码演示了如何在Linux环境下进行时间获取、格式化、进程时间统计以及文件的读写、复制、定位等操作。 ## 项目的主要特性和功能 1. 时间处理 获取当前时间并展示tm结构体的内容。 获取当前时间戳并转换为本地时间。 显示进程的时间信息,包括用户态和内核态的CPU使用时间。 将时间戳转换为本地时间和格林威治标准时间(GMT),并展示两者之间的差异。 2. 文件操作 文件的读写操作,包括使用read()和write()函数。 文件的复制操作,实现从一个文件到另一个文件的内容复制。 文件的定位操作,使用lseek()函数进行文件指针的移动。
【微信小程序源码期末大作业毕业设计】仿美团外卖小程序-小程序项目源码.zip
微信小程序源码期末大作业毕业设计之仿美团外卖小程序源码!!!
【微信小程序源码期末大作业毕业设计】仿ofo共享单车小程序-小程序项目源码.zip
微信小程序源码期末大作业毕业设计之仿ofo共享单车小程序源码
flexbuild-main
NXP flexbuild-main
【微信小程序源码期末大作业毕业设计】仿饿了么外卖小程序-小程序项目源码.zip
微信小程序源码期末大作业毕业设计之饿了么外卖小程序!!!
【微信小程序源码期末大作业毕业设计】健康菜谱小程序-小程序项目源码.zip
微信小程序源码期末大作业毕业设计之健康菜谱小程序!!!
154.明星王鹤棣网页设计.zip
154.明星王鹤棣网页设计.zip
154.明星王鹤棣网页设计.zip 154.明星王鹤棣网页设计.zip 154.明星王鹤棣网页设计.zip