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