java 滑动条怎么在代码中直接设置位置 JMF
import java.awt.BorderLayout;import java.awt.Component;
import java.awt.FileDialog;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import javax.media.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
/**
* A Simple Music Player Using JMF
* 只实现了最简单的功能,而且没有任何异常处理
* @author nmj
*
*/
public class MainFrame extends JFrame{
private static final long serialVersionUID = 1L;
private JPanel mainPanel;
private JButton open,stop;
private JLabel message;
/*
* File Chooser Dialog
*/
private FileDialog fileDialog;
/*
* The music file you want to play
*/
private File file;
/*
* The total path of the music file
* eg:c://music/aaa.mp3
*/
private String filePosition;
/*
* The name of the file
* eg:aaa.mp3
*/
private String fileName;
/*
* This object is from JMF(javax.media.Player)
*/
private Player player;
/*
* 播放音乐的控制器
* 实现了音量调节和调整进度等
* 由JMF实现
*/
private Component control;
public MainFrame(){
super();
setTitle("JMFPlayer");
setSize(400,80);
/*
* 设置窗口大小不可改变
*/
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initialize();
setVisible(true);
}
/*
* 界面设计功能,实现按钮监听
*/
private void initialize() {
mainPanel = new JPanel();
open = new JButton("打开");
open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
try {
openFile();
} catch (NoPlayerException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
stop = new JButton("结束");
stop.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
stopPlayer();
}
});
message = new JLabel("Welcome to use the most simple music player!");
mainPanel.setLayout(new BorderLayout());
mainPanel.add(open,BorderLayout.WEST);
mainPanel.add(stop,BorderLayout.EAST);
mainPanel.add(message,BorderLayout.CENTER);
add(mainPanel);
}
/*
* 打开文件
*/
private void openFile() throws NoPlayerException, MalformedURLException, IOException{
fileDialog = new FileDialog(this);
fileDialog.setVisible(true);
if (fileDialog.getFile() != null) {
filePosition = fileDialog.getDirectory() + fileDialog.getFile();// 原因请见同目录下的FileDialogDemo.java文件
fileName = fileDialog.getFile();
file = new File(filePosition);
createPlayer();
}
}
/*
* 开始播放
*/
private void createPlayer() throws NoPlayerException, MalformedURLException, IOException{
if(player != null)
stopPlayer();
try{
player = Manager.createPlayer(file.toURL());
player.addControllerListener(new ControllerHand());
//player.start();
player.prefetch();// 预读文件
// Component visual = player.getVisualComponent();
// player.getControlPanelComponent();
message.setText("正在播放:"+ fileName);
}catch(Exception e){
JOptionPane.showMessageDialog(null, "本播放器不支持您要播放的格式!", "出错了!",
JOptionPane.ERROR_MESSAGE);
}
}
/*
* 停止播放
*/
private void stopPlayer(){
player.stop();
player.close();
mainPanel.remove(control);
message.setText("Welcome to use the most simple music player!");
}
/*
* 控制类
*/
private class ControllerHand implements ControllerListener {
public void controllerUpdate(ControllerEvent e) {
if (e instanceof RealizeCompleteEvent) {
System.out.println(player.getDuration());
Component visual = player.getVisualComponent();
control = player.getControlPanelComponent();
if (control != null) {
mainPanel.add(control,BorderLayout.SOUTH);
}
mainPanel.doLayout();
return;
}
if (e instanceof EndOfMediaEvent) {
stopPlayer();
}
if( e instanceof PrefetchCompleteEvent){
player.start();
}
}
}
public static void main(String[] args) {
new MainFrame();
}
}
上面代码,会有一个滑动条 ,我想初始位置在代码中直接设置播放的位置,但是播放MP3时不起作用,用鼠标拖动可以 --------------------编程问答-------------------- 转JAVA开发了? --------------------编程问答-------------------- slider.x=(stage.stageWidth-slider.width)/2
slider.y=(stage.stageHeight-slider.height)/2
菜鸟回答 --------------------编程问答-------------------- 没有音量控制条,能否实现音量控制条呢?
补充:Java , Java SE