[Java/JMF] mpg afspelen

Pagina: 1
Acties:

  • EL_Loco
  • Registratie: Oktober 2001
  • Laatst online: 08-11-2023

EL_Loco

alias Haco

Topicstarter
awel, ik ben bezig met een programmatje te maken, waarbij ik een aantal pagina's in een JPanel aanroep.

Nu ben ik zover dat ik dat filmpje af kan spelen (tis een .mpg) dmv van JMF.
Maar als ik het programmaatje laat lopen, dan begint het filmpje meteen te spelen, terwijl ik dat pas wil als i op het knopje intro druk:

Pws.java
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void populateTabbedPane() //joepie een paneeltje vullen
        {
                tabbedPane.addTab
                ("Start",
                        null,
                        new Start(),
                        "Klik hier om te beginnen"
                );
                tabbedPane.addTab
                ("Intro",
                        null,
                        new Intro(),
                        "Klik hier om de geweldige intro te bekijken"
                );
                tabbedPane.addTab
                ("Credits",
                        null,
                        new Credits(),
                        "Een paar bedankjes"
                );

        }       

hiermee roep ik de pagina's aan.

als ik het programma start, zie ik eerst de inhoud van Start.java
maar direct daarna springt hij over naar Intro.java en begint het filmpje te lopen, terwijl ik nog niet eens op het knopje Intro heb gedrukt.
Intro.java
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package Pws;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.media.*;

public class Intro extends JPanel
{
        private static Intro instance;
        protected Player player;
        private File file= new File ("Sn.mpg");

        public Intro ()
        {
                instance=null;
                initComponents();
                setLayout (new BorderLayout());
                setBackground(Color.black);
                
        }
        public static Intro getInstance()
        {

                if (instance==null)
                instance=new Intro ();

                return instance;
        }

        private void initComponents()
        {

                setSize (300, 300);
                show ();
                createPlayer ();
        }

        private void createPlayer ()
        {
                if (file == null)
                {
                        return;
                }
                removePreviousPlayer ();

                try
                {
                        //create a new player and add listener
                        player = Manager.createPlayer (file.toURL () );
                        player.addControllerListener (new EventHandler () );
                        player.start (); //start player
                }
                catch (Exception e)
                {
                        JOptionPane.showMessageDialog (this, "Invalid file or location", "Error loading file", JOptionPane.ERROR_MESSAGE );
                        System.exit (1);
                }
        }

        private void removePreviousPlayer ()
        {
                if (player == null )
                return;

                player.close ();

                Component visual = player.getVisualComponent ();
                Component control = player.getControlPanelComponent ();

                if (visual != null)
                remove (visual);
                if (control !=null)
                remove (control);
        }
        private class EventHandler implements ControllerListener
        {
                public void controllerUpdate (ControllerEvent e)
                {
                        if (e instanceof RealizeCompleteEvent )
                        {
                                Component visualComponent = player.getVisualComponent ();

                                if (visualComponent != null)

                                        add (visualComponent, BorderLayout.CENTER);

                                Component controlsComponent = player.getControlPanelComponent ();

                                if (controlsComponent != null)

                                        add (controlsComponent, BorderLayout.SOUTH);
                                doLayout();
                        }
                }
        }
}


nu is dus mijn vraag: hoe voorkom ik dat meteen het filmpje gaat lopen en dat hij meteen overspringt naar de Intro?
Ik wil dus eerst gewoon de start pagina zien, en dan pas het filmpje als ik op intro klik.

Ps. excuses voor die lap code, maar ik neem aan dat die wel noodzakelijk is

rumores non hiatus dremelunt
malleo omnia consentiunt
Lid van het Anti-Jamba front!


  • CyBoB
  • Registratie: Januari 2001
  • Laatst online: 24-12-2025

CyBoB

.::BURB::.

kweet niet veel van JMF maar dit lijkt me dat er fout gaat

Java:
1
player.start (); //start player 


dat gebeurt dus in de constructor van het panel, en mocht het nu zo zijn dat deze bij het opstarten van het programma al wordt aangeroepen... denk dat je hier wel verder mee kunt.

suc6

  • EL_Loco
  • Registratie: Oktober 2001
  • Laatst online: 08-11-2023

EL_Loco

alias Haco

Topicstarter
mja, maar hoe maak hem wijs dat ie die pagina pas aanroept als ik op dat knopje druk?
-edit- laat maar, ik kan er een Listener aan hangen :)

en daarvan heb ik geen idee hoe ik dat moet doen, ik weet het wel hoe ik dat moet buttons moet doen, kan ik mn Tabs net zo gebruiken :?

[ Voor 59% gewijzigd door EL_Loco op 29-01-2005 17:23 ]

rumores non hiatus dremelunt
malleo omnia consentiunt
Lid van het Anti-Jamba front!


  • foske
  • Registratie: Juli 2001
  • Laatst online: 20:27
mocht je hem nog niet hebben, http://java.sun.com/j2se/1.4.2/docs/api/index.html de algemene api bevat heel veel info. Bookmark heb, en zoek door de methodes van een bepaalde klasse. En bij de veel gebruikte klasses zit er ook nog vaak een 'how - to use...' voorbeeld bij

http://java.sun.com/j2se/...ax/swing/JTabbedPane.html

er zit een changelistener bij, dus dan kan je die gebruiken

  • EL_Loco
  • Registratie: Oktober 2001
  • Laatst online: 08-11-2023

EL_Loco

alias Haco

Topicstarter
Fossie schreef op zondag 30 januari 2005 @ 01:05:
mocht je hem nog niet hebben, http://java.sun.com/j2se/1.4.2/docs/api/index.html de algemene api bevat heel veel info. Bookmark heb, en zoek door de methodes van een bepaalde klasse. En bij de veel gebruikte klasses zit er ook nog vaak een 'how - to use...' voorbeeld bij

http://java.sun.com/j2se/...ax/swing/JTabbedPane.html

er zit een changelistener bij, dus dan kan je die gebruiken
en een wereld gaat voor je open...

dank u, kwist niet eens dat dit bestond |:( :)

rumores non hiatus dremelunt
malleo omnia consentiunt
Lid van het Anti-Jamba front!