001 /*
002  * applet - Swing
003  * <applet code="mplayer.class" width="500" height="380"></applet>
004  * javac mplayer.java
005  */
006  import javax.media.*;
007  import javax.swing.*;
008  import javax.swing.Timer;
009  import java.awt.*;
010  import java.awt.event.*;
011  import java.io.*;
012  import java.net.*;
013  import java.text.*;
014  import java.util.*;
015  public class mplayer extends JApplet   
016  {  
017    JButton bpl, bpu, bst, select;
018    JPanel psl, pmo, pkn, inf, pup;
019    JLabel label, timelabel;
020    private Player player;
021    private File file;
022    private Timer timer;
023    public mplayer()
024    {                 
025       Font f = new Font("Verdana", Font.BOLD, 22);
026       setLayout(new BorderLayout());           
027       setBackground(Color.black);
028       timer = new Timer(1000, new Clock());
029       setForeground(Color.white);
030       label = new JLabel("Выберите файл...");
031       timelabel = new JLabel();
032       pmo = new JPanel();
033       pmo.setBackground(Color.white);	 
034       JButton select = new JButton("Выбор");
035       inf = new JPanel();
036       inf.setLayout(new FlowLayout(FlowLayout.LEFT));	
037       psl = new JPanel();
038       psl.setBackground(Color.gray); 
039       psl.setLayout(new FlowLayout(FlowLayout.RIGHT));	 
040       inf.add(timelabel); inf.add(label); psl.add(select);
041       pup = new JPanel(); pup.setBackground(Color.gray); 
042       pup.setLayout(new FlowLayout(FlowLayout.RIGHT));	
043       pup.add(inf); pup.add(psl);
044       pkn = new JPanel();
045       pkn.setBackground(Color.gray);
046       pkn.setLayout(new FlowLayout(FlowLayout.LEFT));
047       bpl = new JButton("Игра");
048       bpl.addActionListener(new ActionListener() 
049      {
050        public void actionPerformed(ActionEvent ae)
051        {
052          if(player !=null){player.close();}
053          createPlayer();
054        }
055      });
056      bpu = new JButton("Пауза"); 
057      bpu.addActionListener(new ActionListener() 
058      {
059        public void actionPerformed(ActionEvent ae)
060        {
061          if(player !=null){player.stop();}
062          label.setText("Ожидайте...");
063        }
064      });
065      bst = new JButton("Стоп");
066      bst.addActionListener(new ActionListener() 
067      {
068        public void actionPerformed(ActionEvent ae)
069        {
070          if(player !=null){player.stop(); player.close();}
071          label.setText("Просмотр закончен");
072          return;
073        }
074      });	
075      pkn.add(bpl); pkn.add(bpu);pkn.add(bst);
076      select.addActionListener(new ActionListener() 
077      {
078        public void actionPerformed(ActionEvent ae)
079        {
080          if(player !=null){player.stop(); player.close();}
081          openFile();
082        }
083      });
084    getContentPane().add(pup, BorderLayout.NORTH);
085    getContentPane().add(pkn, BorderLayout.SOUTH);
086    getContentPane().add(pmo, BorderLayout.CENTER);
087    show();
088   }
089   private void openFile()
090   { 
091     JFileChooser chooser = new JFileChooser();
092     chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
093     int result = chooser.showOpenDialog(this);
094     if(result == JFileChooser.CANCEL_OPTION){file = null;}
095     else{file = chooser.getSelectedFile();} label.setText("Выбран : " + file.getName());
096   }
097   private void createPlayer()
098   {
099     if(file == null){return;}
100     try 
101    {
102      player = Manager.createPlayer(file.toURL());
103      player.addControllerListener(new EventHandler());
104      label.setText("Проигрываеся : " + file.getName());
105      player.start();
106      timer.start();		
107    }
108    catch (Exception e){JOptionPane.showMessageDialog(this, 
109    "Invalid file or location", "Error loading file", JOptionPane.ERROR_MESSAGE);}
110  }
111  class Clock implements ActionListener 
112  {
113    public void actionPerformed(ActionEvent ae) 
114    {
115      DateFormat df = new SimpleDateFormat("HH:mm:ss");
116      Date time = Calendar.getInstance().getTime();
117      String reportTime = df.format(time);
118      timelabel.setText(reportTime);	  
119    }
120  }
121  private void removePreviousPlayer()
122  {
123    if(player == null){player.close(); return;}
124    Container c = getContentPane();
125    Component vc = player.getVisualComponent();
126    if(vc != null){c.remove(vc);}
127    //Component cpc = player.getControlPanelComponent();
128   //if(cpc != null){c.remove(cpc);}
129  }
130  public static void main(String args[])
131  {
132    JApplet applet = new mplayer();
133    JFrame frame = new JFrame("Проигрываель от Cupoma_170417");
134    frame.addWindowListener(new WindowAdapter() 
135     {
136       public void windowClosing(WindowEvent we){System.exit(0);}
137     });
138    frame.add(applet);
139    frame.setSize(500, 400);
140    applet.init();
141    applet.start();
142    frame.setVisible(true); 
143  }
144  private class EventHandler implements ControllerListener    
145  {
146    public void controllerUpdate(ControllerEvent ce) 
147    {
148      if(ce instanceof RealizeCompleteEvent) 
149      {
150        Container c = getContentPane();
151        //Component cpc = player.getControlPanelComponent();
152        //if(cpc != null){c.add(cpc, BorderLayout.SOUTH);}
153        Component vc = player.getVisualComponent();
154        if(vc != null){pmo.add(vc); c.add(pmo, BorderLayout.CENTER);}
155        c.doLayout();
156      }
157    }
158  }
159  public Insets getInsets(){return new Insets(2, 2, 2, 2);} 
160}                
                             рис.1.1