当前位置:编程学习 > JAVA >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,