[工具代码]Swing实现的播放器时间轴
来源:互联网 发布:淘宝代销宝贝怎么发货 编辑:程序博客网 时间:2024/05/21 19:50
“抛砖引玉”
简介
跳过废话,直接看正文
用Swing实现的播放器时间轴。这里只是展示时间轴的UI以及UI的事件监听逻辑,具体的播放、暂停、停止的逻辑需要自己实现)
正文
- TimePanel
import com.danmuplayer.util.StringUtil;import com.danmuplayer.presenter.MainPresenter;import javax.swing.*;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;public class TimePanel extends JPanel implements ChangeListener { private JLabel mTimeLabel; private JSlider mTimeSlider; private MainPresenter mMainPresenter; private JButton mPlayOrPauseButton; private boolean mIsJumping = false; public TimePanel(MainPresenter mainPresenter, int width, int height) { this.mMainPresenter = mainPresenter; this.setPreferredSize(new Dimension(width, height)); this.setSize(width, height); this.setOpaque(false); addComponets(); } public void addComponets() { this.setLayout(new GridBagLayout()); GridBagConstraints constraints = new GridBagConstraints(); constraints.fill = GridBagConstraints.BOTH; constraints.insets = new Insets(5,0,5,5); // add mPauseButton constraints.gridwidth = 1; mPlayOrPauseButton = new JButton("播放"); mPlayOrPauseButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(mMainPresenter.isPlaying()) { if(mMainPresenter.pause()) { mPlayOrPauseButton.setText("播放"); } } else { if(mMainPresenter.play()) { mPlayOrPauseButton.setText("暂停"); } } } }); this.add(mPlayOrPauseButton, constraints); // add mTimeSlider constraints.insets.left = 5; constraints.gridwidth = 4; constraints.weightx = 1; mTimeSlider = new JSlider(); mTimeSlider.setValue(0); mTimeSlider.setMaximum(0); mTimeSlider.addMouseListener( new MouseAdapter() { public void mousePressed(MouseEvent event) { mMainPresenter.stop(false); mIsJumping = true; } }); mTimeSlider.addChangeListener(this); this.add(mTimeSlider, constraints); // add mTimeLabel constraints.insets.right = 0; constraints.gridwidth = GridBagConstraints.REMAINDER; constraints.weightx = 0; mTimeLabel = new JLabel(); mTimeLabel.setText("00:00/00:00"); mTimeLabel.setHorizontalAlignment(SwingConstants.LEFT); mTimeLabel.setFont(new Font("微软雅黑", Font.PLAIN, 14)); this.add(mTimeLabel, constraints); } public void setMaxTimeInMs(int maxTime) { mTimeSlider.setMaximum(maxTime); } private void updateTimeLabel() { StringBuilder sb = new StringBuilder(StringUtil.timeInSToString(mTimeSlider.getValue() / 1000)); sb.append("/").append(StringUtil.timeInSToString(mTimeSlider.getMaximum() / 1000)); mTimeLabel.setText(sb.toString()); } public void setCurrentTimeInMs(int currentTime) { mTimeSlider.setValue(currentTime); } public void stateChanged(ChangeEvent event) { JSlider source = (JSlider) event.getSource(); if (source.getVerifyInputWhenFocusTarget()) { updateTimeLabel(); } if (!source.getValueIsAdjusting()) { if (mIsJumping) { mIsJumping = false; updateTimeLabel(); if(mMainPresenter.jumpTime(source.getValue())) { mPlayOrPauseButton.setText("暂停"); } } } } public void changePlayOrPauseButton(boolean isPlay) { if (isPlay) { mPlayOrPauseButton.setText("播放"); } else { mPlayOrPauseButton.setText("暂停"); } }}
后记
没有后记
0 0
- [工具代码]Swing实现的播放器时间轴
- java swing实现的简单音乐播放器源码
- Swing实现播放音乐的功能
- 基于Swing实现的截屏工具
- 基于Swing的MP3 音乐播放器
- 用swing显示当前的时间的代码
- 可实现JSCROLLPANE内VIEW最大化的工具 - SWING组件
- JS实现的客户端使用的播放器代码
- [软件开发]基于swing开发的弹幕播放器
- android简单音乐播放器代码的实现
- 实现音乐播放器的代码(html5+css3+jquery)
- Android如何实现简单音乐播放器的代码
- Java swing实现音乐播放器之Java开发图形界面程序音乐播放器仿酷狗音乐播放器
- 银行家算法的java代码实现,Swing写的界面
- swing实现代码助手功能
- java swing实现的多线程实例代码教程-赛马demo
- java swing实现动态心形图案的代码下载
- java swing实现小球沿正弦曲线运动的代码
- Android canvas clipPath 问题
- 组成:GPU与CPU的比较
- 怎样实现二级联动菜单即可选择又可输入???
- Django
- Python-memcached的基本使用
- [工具代码]Swing实现的播放器时间轴
- (9)有序边表填充算法
- Android Java开发实例项目+游戏视频教程免费下载咯。。
- Liunx Swoole 安装
- Docker实践(一):安装
- Django
- ZCMU—1405
- C语言数组小结
- eclipse 编写Android程序时,在menu添加菜单节点没有“Item”之类的选项