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