Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
src/ControlPanel.java
/* |
* QuickTime for Java SDK Sample Code |
Usage subject to restrictions in SDK License Agreement |
* Copyright: © 1996-1999 Apple Computer, Inc. |
*/ |
import java.awt.*; |
import java.awt.event.*; |
import quicktime.*; |
import quicktime.app.display.*; |
import quicktime.app.anim.*; |
import quicktime.app.time.*; |
import quicktime.std.movies.MovieController; |
import quicktime.app.players.QTPlayer; |
/** |
* A simple panel of AWT objects to demonstrate how AWT can be used to control a |
* QuickTime movie. |
*/ |
public class ControlPanel extends Panel implements Errors { |
//_________________________ CLASS METHODS |
public ControlPanel (Timer c, QTPlayer m, DirectGroup dg, Compositor sh) { |
this.comp = c; |
this.mov = m; |
this.dg = dg; |
shTimer = sh.getTimer(); |
dgTimer = dg.getTimer(); |
GridBagLayout gb = new GridBagLayout(); |
setLayout (gb); |
GridBagConstraints cons = new GridBagConstraints(); |
cons.fill = GridBagConstraints.HORIZONTAL; |
cons.insets = new Insets (1, 1, 1, 1); |
cons.weightx = 1.0; |
cons.gridy = 0; |
cons.gridx = 1; |
add (rateLabel, cons); |
cons.gridx = 2; |
add (rateField, cons); |
cons.gridy = 1; |
cons.gridx = 1; |
add (compLabel, cons); |
cons.gridx = 2; |
add (compField, cons); |
cons.gridy = 2; |
cons.gridx = 0; |
add (movCb, cons); |
//sprites |
cons.gridy = 2; |
cons.gridx = 2; |
add (spriteLabel, cons); |
cons.gridx = 3; |
add (spriteField, cons); |
//directgroup controller |
rateField.addActionListener (new ActionListener () { |
public void actionPerformed (ActionEvent event) { |
String str = new String (event.getActionCommand()); |
dgTimer.setRate (new Float (str).floatValue()); |
} |
}); |
//compositor controller (ripples and spaceships) |
compField.addActionListener (new ActionListener () { |
public void actionPerformed (ActionEvent event) { |
String str = new String (event.getActionCommand()); |
comp.setRate (new Float (str).floatValue()); |
} |
}); |
//movie looping controller |
movCb.addItemListener(new ItemListener() { |
public void itemStateChanged (ItemEvent ev) { |
if (((Checkbox)ev.getItemSelectable()).getState()) { |
try { |
mov.getMovieController().setLooping(true); |
}catch(QTException ex) { |
throw new QTRuntimeException (ex); |
} |
} |
else { |
try { |
mov.getMovieController().setLooping(false); |
}catch(QTException ex) { |
throw new QTRuntimeException (ex); |
} |
} |
} |
}); |
//spaceships rate controller |
spriteField.addActionListener (new ActionListener () { |
public void actionPerformed (ActionEvent event) { |
String str = new String (event.getActionCommand()); |
shTimer.setRate (new Float (str).floatValue()); |
} |
}); |
} |
public void setDisplay () throws QTException { |
rateField.setText (Float.toString (dgTimer.getRate())); |
spriteField.setText (Float.toString (shTimer.getRate())); |
compField.setText (Float.toString (comp.getRate())); |
} |
//_________________________ INSTANCE VARIABLES |
private Label rateLabel = new Label ("Direct Group Rate:", Label.RIGHT); |
private TextField rateField = new TextField (5); |
private Label compLabel = new Label ("Compositor Rate:", Label.RIGHT); |
private TextField compField = new TextField (5); |
private Checkbox movCb = new Checkbox("Loop Movie"); |
private Label spriteLabel = new Label ("Sprites Rate:", Label.RIGHT); |
private TextField spriteField = new TextField (5); |
private Timer comp; |
private QTPlayer mov; |
private Timer dgTimer; |
private Timer shTimer; |
private DirectGroup dg; |
//_________________________ INSTANCE METHODS |
/** |
* @return a Dimension object which defines the minimum size |
*/ |
public Dimension getMinimumSize() { return new Dimension (0, 80); } |
/** |
* @return a Dimension object which defines the preferred size |
*/ |
public Dimension getPreferredSize() { return getMinimumSize(); } |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14