`
chenyu.hz
  • 浏览: 139645 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

java实现千千静听界面

 
阅读更多

 

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版千千静听播放器

    开发者通过Java的Swing或JavaFX库构建用户界面,实现了与原千千静听相似的交互体验。 【标签】:“播放器,java,java源程序,java实例” “播放器”标签明确了这是个音乐播放软件;“java”标签说明它是基于Java...

    Java仿千千静听音乐播放器源代码

    Java模仿千千静听音乐播放器源代码,界面超漂亮,程序代码简洁,不过程序比较综合,估计没有基础的JAVA朋友不好看懂,想研究一下的可下载试试。编译时需要在Eclipse下打开,并导入源码包目录下的必要库文件才行。 ...

    模仿千千静听界面的Flash播放器VB源码

    基于VB程序模仿千千静听界面的Flash播放器,除了播放SWF文件外,本程序里的一些模块对我们开发大型应用很有使用价值,比如:关于收藏夹操作的模块、显示文件夹、浏览对话框的模块、配合播放窗口实现swflash.ocx的...

    java仿千千静听音乐播放器

    通过这些Java Swing的基础知识和自定义组件的运用,开发者成功地创建了一个模仿千千静听音乐播放器的界面,实现了基本的播放功能。这个项目不仅展示了Java GUI编程的基本技巧,还体现了如何通过自定义组件和图形绘制...

    Java仿千千静听音乐播放器源代码.rar

    该资源是一个基于Java编程语言开发的音乐播放器项目,仿照了曾经流行的“千千静听”音乐播放软件。这个项目对于学习Java图形用户界面(GUI)设计、音频处理以及事件监听等技术提供了很好的实践平台。以下是这个项目...

    java模仿千千静听播放器源码

    【Java模仿千千静听播放器源码】项目是一个基于Java技术实现的音乐播放软件,其设计灵感来源于经典的千千静听播放器。这个源码实现了千千静听的全部功能,包括播放、暂停、停止、上一曲、下一曲、音量控制、歌曲列表...

    Java仿千千静听音乐播放器源代码.zip

    这个项目的重点在于实现类似千千静听的用户界面和功能特性,可能包括播放、暂停、停止、上一曲、下一曲、音量控制、音乐列表管理等。 【描述分析】 描述中提到的"Java仿千千静听音乐播放器源代码.zip"与标题相呼应...

    java版的千千静听

    java版的千千静听,超炫的图形界面,基本实现了千千静中的所有功能!

    基于java的开发源码-仿千千静听音乐播放器源代码.zip

    该压缩包文件“基于java的开发源码-仿千千静听音乐播放器源代码.zip”包含了一款基于Java编程语言开发的音乐播放器的源代码。这个项目旨在模仿知名的千千静听音乐播放器的功能和用户体验,为学习Java编程和软件开发...

    仿千千静听 YOYOPlayer java 音乐播放器

    作为一个用Java语言实现的多媒体应用程序,YOYOPlayer展现了Java跨平台的特性,可以在多个操作系统上运行,包括Windows、Linux和Mac OS等。这款播放器不仅提供了基本的音乐播放功能,还可能包括了音效调整、播放列表...

    仿千千静听JAVA源代码

    【仿千千静听JAVA源代码】是一款基于JAVA语言实现的音乐播放软件,它借鉴了经典音乐播放器“千千静听”的设计理念和用户界面,为用户提供了一个类似于原版的音乐体验。该软件的核心功能包括播放、暂停、停止、上一曲...

    java源码:Java仿千千静听音乐播放器源代码.rar

    【标题】中的“Java源码:Java仿千千静听音乐播放器源代码”表明这是一个使用Java编程语言编写的音乐播放器项目,模仿了著名的千千静听音乐播放器的功能和界面。这个项目可能是为了教学、学习或者研究目的,让人们...

    Java仿千千静听音乐播放器源代码.7z

    【Java仿千千静听音乐播放器源代码】 在IT领域,Java是一种广泛使用的编程语言,尤其在开发桌面应用、Web应用以及移动应用等方面。"Java仿千千静听音乐播放器源代码"是一个示例项目,它展示了如何使用Java来创建一...

Global site tag (gtag.js) - Google Analytics