import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.util.Enumeration; import com.sun.j3d.utils.geometry.ColorCube; import com.sun.j3d.utils.universe.SimpleUniverse; import javax.media.j3d.*; public class Reageering1 extends Applet { public Reageering1() { setLayout(new BorderLayout()); Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); add(c, BorderLayout.CENTER); BranchGroup juur = new BranchGroup(); TransformGroup keere1=new TransformGroup(); keere1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); juur.addChild(keere1); keere1.addChild(new ColorCube(0.5)); Behavior kuular=new R1Klahvikuular(keere1); kuular.setSchedulingBounds(new BoundingSphere()); juur.addChild(kuular); juur.compile(); SimpleUniverse u = new SimpleUniverse(c); u.getViewingPlatform().setNominalViewingTransform(); u.addBranchGraph(juur); } public static void main(String[] args) { Frame f=new Frame("Pöörlev kuup"); f.add(new Reageering1()); f.setSize(300, 300); f.setVisible(true); } } class R1Klahvikuular extends Behavior{ TransformGroup grupp; double nurk; public R1Klahvikuular(TransformGroup grupp1){ grupp=grupp1; } public void initialize(){ wakeupOn(new WakeupOnAWTEvent(KeyEvent.KEY_PRESSED)); //mis sündmuse peale alguses reageerib } public void processStimulus(Enumeration e){ //Käivitatakse sündmuse toimumisel nurk+=0.1; Transform3D t=new Transform3D(); t.rotX(nurk); grupp.setTransform(t); wakeupOn(new WakeupOnAWTEvent(KeyEvent.KEY_PRESSED)); } }