01  /*
02   *  <applet code="player.class" width="640" height="520"></applet> 
04   */
05  import java.awt.*;
06  import java.awt.event.*;
07  import java.io.*;
08  import java.net.*;
09  import javax.swing.*;
10  import javax.media.*;
11  public class player extends JApplet 
12   {
13     private Player player;
14     private File file;
15     public player()
16      {
17        setBackground(Color.black);
18        JPanel ps = new JPanel();
19        ps.setLayout(new FlowLayout(FlowLayout.RIGHT));
20        JButton select = new JButton("select"); JLabel label = new JLabel("Select file...");
21        select.addActionListener(new ActionListener()  // обработка нажатия кнопки
22         {
23           public void actionPerformed(ActionEvent ae)
24            {
25              openFile();
26              createPlayer();
27            }
28         });
29        ps.add(label); ps.add(select);
30        getContentPane().add(ps, BorderLayout.NORTH);
31        show();
32      }
33     private void openFile()
34      {      
35        JFileChooser fileChooser = new JFileChooser();
36        fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
37        int result = fileChooser.showOpenDialog(this);
38        if(result == JFileChooser.CANCEL_OPTION){file = null;}
39        else{file = fileChooser.getSelectedFile();}
40      }
41     private void createPlayer()           // пытаемся создать плеер
42      {
43        if(file == null){return;}
44        try 
45         {
46           player = Manager.createPlayer(file.toURL());
47           player.addControllerListener(new EventHandler());
48           label.setText("Playing : " + file.getName()); player.start();  
49         }
50        catch (Exception e){JOptionPane.showMessageDialog(this, "Invalid file or location", 
                                             "Error loading file", JOptionPane.ERROR_MESSAGE);}
51      }
52     private void removePreviousPlayer()              // удаляем предыдущий плеер
53      {
54        if(player == null){return;}
55        Component vc = player.getVisualComponent();
56        Component cpc = player.getControlPanelComponent();
57        Container c = getContentPane();
58        if(visual != null){c.remove(vc);}
59        if(control != null){c.remove(cpc);}
60      }
61     public static void main(String args[])
62      {
63        JApplet applet = new player();
64        JFrame frame = new JFrame("Player by Cupoma_140417");
65        frame.addWindowListener(new WindowAdapter() 
66         {
67           public void windowClosing(WindowEvent we){System.exit(0);}
68         });
69        frame.add(applet);
70        frame.setSize(640, 520);
71        applet.init();
72        applet.start();
73        frame.setVisible(true); 
74      }
75     private class EventHandler implements ControllerListener  // обрабатываем событие  
76      {
77        public void controllerUpdate(ControllerEvent ce)  // контролируем обновление
78         {
79           if(ce instanceof RealizeCompleteEvent)       // если событие полностью реализовано
80            {
81              Container c = getContentPane();
82              Component vc = player.getVisualComponent();   
83              if(vc != null){c.add(vc, BorderLayout.CENTER);}
84              Component cpc = player.getControlPanelComponent();
85              if(cpc != null){c.add(cpc, BorderLayout.SOUTH);}
86              c.doLayout();
87            }
88         }
89      }
90     public Insets getInsets(){return new Insets(2, 2, 2, 2);}
91   }                                    
                                     рис.5