// Main Class
1
2 package org.jmf.example;
3
4 import javax.swing.JDialog;
5 import javax.swing.JFrame;
6 import javax.swing.UIManager;
7 import javax.swing.UnsupportedLookAndFeelException;
8 import javax.swing.plaf.metal.MetalLookAndFeel;
9
10 public class ExampleJMF
11 {
12 public static void main(String[] args)
13 {
14 JFrame.setDefaultLookAndFeelDecorated(true);
15 JDialog.setDefaultLookAndFeelDecorated(true);
16
17 try
18 {
19 UIManager.setLookAndFeel(new MetalLookAndFeel());
20 }
21 catch(UnsupportedLookAndFeelException e)
22 {
23 e.printStackTrace();
24 }
25
26 new exampleFrame();
27 }
28 }
// Frame Class
1
2 package org.jmf.example;
3
4 import java.awt.Toolkit;
5 import java.awt.event.WindowAdapter;
6 import java.awt.event.WindowEvent;
7
8 import javax.swing.JFrame;
9
10 public class exampleFrame extends JFrame
11 {
12 private static final long serialVersionUID = 1L;
13
14 public exampleFrame()
15 {
16 super("JMF - Example...");
17
18 setSize(400, 300);
19 setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - getWidth())/2, (Toolkit.getDefaultToolkit().getScreenSize().height - getHeight())/2);
20
21 addWindowListener(new WindowAdapter()
22 {
23 public void windowClosing(WindowEvent evt)
24 {
25 System.exit(0);
26 }
27 });
28
29 setContentPane(new examplePanel());
30 setVisible(true);
31 }
32 }
// Panel Class
1
2 package org.jmf.example;
3
4 import java.awt.Component;
5 import java.awt.Graphics;
6 import java.awt.event.ActionEvent;
7 import java.awt.event.ActionListener;
8 import java.io.IOException;
9 import java.net.MalformedURLException;
10 import java.net.URL;
11
12 import javax.media.ControllerEvent;
13 import javax.media.ControllerListener;
14 import javax.media.Manager;
15 import javax.media.NoPlayerException;
16 import javax.media.Player;
17 import javax.media.RealizeCompleteEvent;
18 import javax.swing.JPanel;
19
20 public class examplePanel extends JPanel implements ActionListener, ControllerListener
21 {
22 private static final long serialVersionUID = 1L;
23
24 private Component visualComponent;
25 private Player player;
26
27 public examplePanel()
28 {
29 try
30 {
31 player = Manager.createPlayer(new URL("file:///tmp/a.mpg"));
32 player.addControllerListener(this);
33
34 player.start();
35 }
36 catch(NoPlayerException e)
37 {
38 e.printStackTrace();
39 }
40 catch(MalformedURLException e)
41 {
42 e.printStackTrace();
43 }
44 catch(IOException e)
45 {
46 e.printStackTrace();
47 }
48 }
49
50 public void paintComponent(Graphics g)
51 {
52 super.paintComponent(g);
53 }
54
55 public void actionPerformed(ActionEvent e)
56 {
57
58 }
59
60 public void controllerUpdate(ControllerEvent c)
61 {
62 if(player == null)
63 return;
64
65 if(c instanceof RealizeCompleteEvent)
66 {
67 if((visualComponent = player.getVisualComponent()) != null)
68 add(visualComponent);
69 }
70 }
71 }