วันพุธที่ 20 มีนาคม พ.ศ. 2556

LAB 9-1_MediaPlayerDemo

MediaPlayerDemo(LAB9-1)


import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.media.*;

public class MediaPlayerDemo extends JFrame{
    private Player player;
    private File file;

    public MediaPlayerDemo ()
    {
        super("Demonstring the Java Media Player");

        JButton openFile=new JButton("Open file to play");
        openFile.addActionListener(
            new ActionListener (){
            public void actionPerformed(ActionEvent e)
                {
                openFile();
                createPlayer();
                }
            }
        );
        getContentPane().add(openFile,BorderLayout.NORTH);

        setSize(300,300);
        show();
}
private void openFile()

{
        JFileChooser fileChooser=new JFileChooser();

        fileChooser.setFileSelectionMode(
            JFileChooser.FILES_ONLY);

        int result=fileChooser.showOpenDialog(this);

        
        if(result==JFileChooser.CANCEL_OPTION)
            file=null;
        else
            file=fileChooser.getSelectedFile();
    }

    private void createPlayer()
        {
        if(file==null)
            return;

        removePreviousPlayer();

        try{

            player=Manager.createPlayer(file.toURL());
            player.addControllerListener(new EventHandler());
            player.start();
        }
        catch(Exception e){
            JOptionPane.showMessageDialog(this,
                "Invalid file or location","Error loading file",
                JOptionPane.ERROR_MESSAGE);
            }
    }

    private void removePreviousPlayer()
    {
        if(player==null)
            return;

        player.close();

        Component visual=player.getVisualComponent();
        Component control=player.getControlPanelComponent();

        Container c=getContentPane();

        if(visual !=null)
            c.remove(visual);

        if(control !=null)
            c.remove(control);
    }

    public static void main (String[]args){

        MediaPlayerDemo app=new MediaPlayerDemo();

        app.addWindowListener(
            new WindowAdapter(){
                public void windowClosing(WindowEvent e)
                {
                    System.exit(0);
                }
        }
    );
}
    
    private class EventHandler implements ControllerListener{
        public void controllerUpdate(ControllerEvent e){
            if (e instanceof RealizeCompleteEvent){

                Container c=getContentPane();
                Component visualComponent=
                    player.getVisualComponent();
                if(visualComponent !=null)

                    c.add(visualComponent,BorderLayout.CENTER);
                Component controlsComponent=
                    player.getControlPanelComponent();
                if(controlsComponent !=null)

                    c.add(controlsComponent,BorderLayout.SOUTH);
                c.doLayout();
            }
        }
    }
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น