Swing之音乐播放器实例

1

package com.szsm.swing.framepanel;

import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.net.MalformedURLException;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.filechooser.FileNameExtensionFilter;

import com.szsm.swing.parent.FrameSet;

public class PlayFrame extends FrameSet {

	File file = null;
	public PlayFrame() {
	}

	@Override
	protected void init() {
		super.init();

	}

	@Override
	protected void initInterface() {
		super.initInterface();
		this.setLayout(new FlowLayout());
		this.setSize(400, 100);
		parentContainer.add(new PlayPanel());
	}

	class PlayPanel extends JPanel {
		public PlayPanel() {
			final JTextField field = new JTextField();
			field.setPreferredSize(new Dimension(300, 40));
			this.add(field);
			JButton select = new JButton("选择");
			select.addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent arg0) {
					JFileChooser chooser = new JFileChooser();
					 chooser.setFileFilter(new
					 FileNameExtensionFilter("支持的音频文件(*.wav,*.au,*.mid)", "wav", "au", "mid")) ;
					 chooser.showOpenDialog(PlayFrame.this);
					  file = chooser.getSelectedFile();
					  if(null != file)
					  {
						  String path = file.getAbsolutePath();
						  field.setText(path);
					  }
				}
			});
			
			JButton play = new JButton("播放");
			play.addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent arg0) {
					if(clip!=null)
					{
						clip.stop();
					}
					try {
						clip = Applet.newAudioClip(file.toURI().toURL());
						clip.play();
					} catch (MalformedURLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			});
			this.add(select);
			this.add(play);
		}

	}
	 AudioClip clip = null;
}

2



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静山晚风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值