package com.tianlong.TTPlayer.ui;
import java.awt.Color;
/**
* 主界面,
* @author 翟天龙
* @version V1.0 2011-2-24
*/
public class MainFrame extends JFrame
{
private static final long serialVersionUID = 4812210947968968483L;
/**
* 主界面
*/
private MainPanel mainPanel = new MainPanel();
/**
* 播放列表
*/
private EQDialog eqDialog;
private PLDialog plDialog;
private LRCDialog lrcDialog;
/**
* 构造方法
*/
public MainFrame()
{
//设置布局
setLayout(null);
//不可改变大小
setResizable(false);
//禁用装饰
setUndecorated(true);
//设置位置
setLocation(200, 150);
//设置面板
setContentPane(mainPanel);
//设置大小
setSize(new Dimension(310, 187));
//设置界面为圆角界面(需java1.6_u23支持)
AWTUtilities.setWindowShape(this, new RoundRectangle2D.Float(0, 0, 310, 187, 15, 21));
//设置系统托盘
Utils.initSysTrayIcon();
//显示
setVisible(true);
//弹出EQ/LRC/PL窗口
showDialog();
}
/**
* 弹出EQ/LRC/PL窗口
*/
private void showDialog()
{
eqDialog = new EQDialog(this);
eqDialog.setLocation(200, 337);
eqDialog.setVisible(true);
lrcDialog = new LRCDialog(this);
lrcDialog.setLocation(510, 150);
lrcDialog.setVisible(true);
plDialog = new PLDialog(this);
plDialog.setLocation(200, 437);
plDialog.setVisible(true);
}
/**
* 取消显示
*/
public void dispose()
{
super.dispose();
eqDialog.dispose();
lrcDialog.dispose();
plDialog.dispose();
}
/**
* 主面板
* @author 翟天龙
* @version V1.0 2011-2-24
*/
class MainPanel extends JPanel
{
private static final long serialVersionUID = 9130907700848499083L;
/**
* 背景
*/
private JLabel backGround;
/**
* 最大化
*/
private JButton maxButton;
/**
* 最小化
*/
private JButton minButton;
/**
* 关闭
*/
private JButton closeButton;
/**
* 停止
*/
private JButton stopButton;
/**
* 上一首
*/
private JButton previousButton;
/**
* 播放
*/
private JToggleButton startButton;
/**
* 下一首
*/
private JButton nextButton;
/**
* 打开
*/
private JButton openButton;
/**
* 音乐窗
*/
private JToggleButton musicButton;
/**
* 播放列表显示按钮
*/
private JButton plButton;
/**
* 均衡器显示按钮
*/
private JButton eqButton;
/**
* 歌词显示按钮
*/
private JButton lrcButton;
/**
* 关闭声音按钮
*/
private JToggleButton closeSoundButton;
/**
* 音量滑块
*/
private JSlider volumeSlider;
/**
* 播放进度滑块
*/
private JSlider timeSlider;
/**
* 示波器
*/
private AudioChart audioChart;
/**
* 时间面板
*/
private TimePanel timePanel;
/**
* 状态面板
*/
private StatePanel statePanel;
/**
* 歌曲信息面板
*/
private SongInfoPanel songInfoPanel;
public MainPanel()
{
//初始化所有组件
initComponent();
//初始化所有组件的监听
initComponentListener();
setLayout(null);
add(maxButton);
add(minButton);
add(closeButton);
add(stopButton);
add(previousButton);
add(startButton);
add(nextButton);
add(openButton);
add(musicButton);
add(plButton);
add(eqButton);
add(lrcButton);
add(closeSoundButton);
add(volumeSlider);
add(timeSlider);
add(audioChart);
add(timePanel);
add(statePanel);
add(songInfoPanel);
add(backGround);
}
/**
* 初始化所有组件的监听
*/
private void initComponentListener()
{
closeButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
minButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
MainFrame.this.dispose();
}
});
}
/**
* 初始化所有组件
*/
private void initComponent()
{
backGround = new JLabel(ImageTools.getImageIcon("main.png"));
backGround.setBounds(0, 0, 310, 187);
maxButton = Utils.createButton(new Dimension(17, 15), "max.png", "max_r.png");
maxButton.setBounds(243, 5, 17, 15);
minButton = Utils.createButton(new Dimension(17, 15), "min.png", "min_r.png");
minButton.setBounds(264, 5, 17, 15);
closeButton = Utils.createButton(new Dimension(17, 15), "close.png", "close_r.png");
closeButton.setBounds(285, 5, 17, 15);
stopButton = Utils.createButton(new Dimension(35, 35), "stop.png", "stop_r.png");
stopButton.setBounds(10, 135, 35, 35);
previousButton = Utils.createButton(new Dimension(35, 35), "previous.png", "previous_r.png");
previousButton.setBounds(52, 135, 35, 35);
startButton = Utils.createToggleButton(new Dimension(49, 49), "start.png", "start_r.png", "pause.png", false);
startButton.setBounds(94, 131, 49, 49);
nextButton = Utils.createButton(new Dimension(35, 35), "next.png", "next_r.png");
nextButton.setBounds(150, 135, 35, 35);
openButton = Utils.createButton(new Dimension(35, 35), "open.png", "open_r.png");
openButton.setBounds(192, 135, 35, 35);
musicButton = Utils.createToggleButton(new Dimension(64, 19), "musicWindow.png", "musicWindow_r.png", "musicWindow_r.png", false);
musicButton.setBounds(240, 135, 64, 19);
plButton = Utils.createButton(new Dimension(31, 13), "pl.png", "pl.png");
plButton.setBounds(190, 100, 31, 13);
eqButton = Utils.createButton(new Dimension(31, 13), "eq.png", "eq.png");
eqButton.setBounds(229, 100, 31, 13);
lrcButton = Utils.createButton(new Dimension(31, 13), "lrc.png", "lrc.png");
lrcButton.setBounds(268, 100, 31, 13);
closeSoundButton = Utils.createToggleButton(new Dimension(16, 12), "closeSound.png", "closeSound_r.png", "closeSound_s.png", false);
closeSoundButton.setBounds(188, 75, 16, 12);
volumeSlider = Utils.createSlider(1, 100, 100, "volume_ball.png", "volume_ball.png", "volume_ball.png", "volume_bg1.png", "volume_bg2.png", null, SwingConstants.HORIZONTAL);
volumeSlider.setBounds(210, 76, 83, 12);
timeSlider = Utils.createSlider(1, 100, 100, "time_ball.png", "time_ball_r.png", "time_ball_r.png", "time_bg1.png", "time_bg2.png", null, SwingConstants.HORIZONTAL);
timeSlider.setBounds(5, 119, 300, 10);
audioChart = new AudioChart();
audioChart.setSpectrumAnalyserBandCount(40);
audioChart.setPeakColor(Color.orange.brighter());
audioChart.setScopeColor(Color.green.brighter());
audioChart.setSpectrumAnalyserColors(Utils.getColors(Color.BLUE.darker(), Color.BLUE, Color.BLUE.brighter(), 256));
audioChart.setSpectrumAnalyserDecay(0.05f);
audioChart.setBounds(7, 52, 170, 63);
timePanel = new TimePanel();
timePanel.setBounds(245, 31, 56, 10);
statePanel = new StatePanel();
statePanel.setBounds(195, 53, 110, 11);
songInfoPanel = new SongInfoPanel();
songInfoPanel.setBounds(15, 30, 180, 11);
}
}
}
- 大小: 53.7 KB
分享到:
相关推荐
开发者通过Java的Swing或JavaFX库构建用户界面,实现了与原千千静听相似的交互体验。 【标签】:“播放器,java,java源程序,java实例” “播放器”标签明确了这是个音乐播放软件;“java”标签说明它是基于Java...
Java模仿千千静听音乐播放器源代码,界面超漂亮,程序代码简洁,不过程序比较综合,估计没有基础的JAVA朋友不好看懂,想研究一下的可下载试试。编译时需要在Eclipse下打开,并导入源码包目录下的必要库文件才行。 ...
基于VB程序模仿千千静听界面的Flash播放器,除了播放SWF文件外,本程序里的一些模块对我们开发大型应用很有使用价值,比如:关于收藏夹操作的模块、显示文件夹、浏览对话框的模块、配合播放窗口实现swflash.ocx的...
通过这些Java Swing的基础知识和自定义组件的运用,开发者成功地创建了一个模仿千千静听音乐播放器的界面,实现了基本的播放功能。这个项目不仅展示了Java GUI编程的基本技巧,还体现了如何通过自定义组件和图形绘制...
该资源是一个基于Java编程语言开发的音乐播放器项目,仿照了曾经流行的“千千静听”音乐播放软件。这个项目对于学习Java图形用户界面(GUI)设计、音频处理以及事件监听等技术提供了很好的实践平台。以下是这个项目...
【Java模仿千千静听播放器源码】项目是一个基于Java技术实现的音乐播放软件,其设计灵感来源于经典的千千静听播放器。这个源码实现了千千静听的全部功能,包括播放、暂停、停止、上一曲、下一曲、音量控制、歌曲列表...
这个项目的重点在于实现类似千千静听的用户界面和功能特性,可能包括播放、暂停、停止、上一曲、下一曲、音量控制、音乐列表管理等。 【描述分析】 描述中提到的"Java仿千千静听音乐播放器源代码.zip"与标题相呼应...
java版的千千静听,超炫的图形界面,基本实现了千千静中的所有功能!
该压缩包文件“基于java的开发源码-仿千千静听音乐播放器源代码.zip”包含了一款基于Java编程语言开发的音乐播放器的源代码。这个项目旨在模仿知名的千千静听音乐播放器的功能和用户体验,为学习Java编程和软件开发...
作为一个用Java语言实现的多媒体应用程序,YOYOPlayer展现了Java跨平台的特性,可以在多个操作系统上运行,包括Windows、Linux和Mac OS等。这款播放器不仅提供了基本的音乐播放功能,还可能包括了音效调整、播放列表...
【仿千千静听JAVA源代码】是一款基于JAVA语言实现的音乐播放软件,它借鉴了经典音乐播放器“千千静听”的设计理念和用户界面,为用户提供了一个类似于原版的音乐体验。该软件的核心功能包括播放、暂停、停止、上一曲...
【标题】中的“Java源码:Java仿千千静听音乐播放器源代码”表明这是一个使用Java编程语言编写的音乐播放器项目,模仿了著名的千千静听音乐播放器的功能和界面。这个项目可能是为了教学、学习或者研究目的,让人们...
【Java仿千千静听音乐播放器源代码】 在IT领域,Java是一种广泛使用的编程语言,尤其在开发桌面应用、Web应用以及移动应用等方面。"Java仿千千静听音乐播放器源代码"是一个示例项目,它展示了如何使用Java来创建一...