annotate src/main/java/alice/test/topology/aquarium/fx/Aquarium.java @ 381:6adfb60766f7 multicast

add window close event
author sugi
date Tue, 10 Jun 2014 13:41:11 +0900
parents 29e75b92c358
children 878d397904da
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
375
e58f5f74748e create foundation
sugi
parents:
diff changeset
1 package alice.test.topology.aquarium.fx;
e58f5f74748e create foundation
sugi
parents:
diff changeset
2
e58f5f74748e create foundation
sugi
parents:
diff changeset
3 import java.io.IOException;
e58f5f74748e create foundation
sugi
parents:
diff changeset
4
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
5 import alice.codesegment.OutputDataSegment;
375
e58f5f74748e create foundation
sugi
parents:
diff changeset
6 import javafx.application.Application;
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
7 import javafx.event.EventHandler;
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
8 import javafx.scene.Group;
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
9 import javafx.scene.Parent;
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
10 import javafx.scene.PerspectiveCamera;
375
e58f5f74748e create foundation
sugi
parents:
diff changeset
11 import javafx.scene.Scene;
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
12 import javafx.scene.SceneAntialiasing;
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
13 import javafx.scene.SubScene;
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
14 import javafx.scene.input.KeyEvent;
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
15 import javafx.scene.paint.Color;
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
16 import javafx.scene.transform.Rotate;
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
17 import javafx.scene.transform.Translate;
375
e58f5f74748e create foundation
sugi
parents:
diff changeset
18 import javafx.stage.Stage;
381
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
19 import javafx.stage.WindowEvent;
375
e58f5f74748e create foundation
sugi
parents:
diff changeset
20
e58f5f74748e create foundation
sugi
parents:
diff changeset
21 public class Aquarium extends Application {
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
22
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
23 private OutputDataSegment ods = new OutputDataSegment();
375
e58f5f74748e create foundation
sugi
parents:
diff changeset
24
e58f5f74748e create foundation
sugi
parents:
diff changeset
25 @Override
e58f5f74748e create foundation
sugi
parents:
diff changeset
26 public void start(Stage primaryStage) throws IOException {
379
b162da6aa0c2 refactor
sugi
parents: 378
diff changeset
27 String myName = getParameters().getRaw().get(0);
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
28 primaryStage.setTitle("Aquarium "+ myName); // name
375
e58f5f74748e create foundation
sugi
parents:
diff changeset
29 primaryStage.setResizable(false);
381
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
30 primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>(){
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
31 @Override
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
32 public void handle(WindowEvent event) {
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
33 System.exit(0);
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
34 }
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
35 });
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
36
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
37 Scene scene = new Scene(createContent());
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
38 scene.setOnKeyPressed(new EventHandler<KeyEvent>() {
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
39 public void handle(KeyEvent t) {
381
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
40 System.out.println(t.getCode());
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
41 switch (t.getCode()) {
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
42 case RIGHT:
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
43 ods.update(myName+"FishPosition", new FishInfo(0.1,0,0));
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
44 break;
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
45 case LEFT:
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
46 ods.update(myName+"FishPosition", new FishInfo(-0.1,0,0));
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
47 break;
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
48 case UP:
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
49 ods.update(myName+"FishPosition", new FishInfo(0,-0.1,0));
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
50 break;
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
51 case DOWN:
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
52 ods.update(myName+"FishPosition", new FishInfo(0,0.1,0));
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
53 break;
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
54 default: // do nothing
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
55 break;
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
56 }
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
57 }
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
58 });
381
6adfb60766f7 add window close event
sugi
parents: 380
diff changeset
59
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
60 primaryStage.setScene(scene);
375
e58f5f74748e create foundation
sugi
parents:
diff changeset
61 primaryStage.show();
e58f5f74748e create foundation
sugi
parents:
diff changeset
62 }
e58f5f74748e create foundation
sugi
parents:
diff changeset
63
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
64 private Parent createContent(){
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
65 Group root = new Group();
378
ac3cf96f4426 add scooter object with CreateObject and AddObject
sugi
parents: 377
diff changeset
66 ods.put("root", root);
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
67
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
68 // Create and position camera
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
69 PerspectiveCamera camera = new PerspectiveCamera(true);
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
70 camera.getTransforms().addAll(
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
71 new Rotate(-20, Rotate.Y_AXIS),
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
72 new Rotate(-20, Rotate.X_AXIS),
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
73 new Translate(0, 0, -15));
379
b162da6aa0c2 refactor
sugi
parents: 378
diff changeset
74 camera.setId("camera");
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
75
379
b162da6aa0c2 refactor
sugi
parents: 378
diff changeset
76 root.getChildren().add(camera);
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
77
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
78 // Use a SubScene
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
79 SubScene subScene = new SubScene(root, 800, 700, true, SceneAntialiasing.BALANCED);
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
80 subScene.setFill(Color.TRANSPARENT);
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
81 subScene.setCamera(camera);
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
82 Group parent = new Group(subScene);
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
83
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
84 return parent;
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
85 }
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
86
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
87
375
e58f5f74748e create foundation
sugi
parents:
diff changeset
88 public static void main(String[] args) {
e58f5f74748e create foundation
sugi
parents:
diff changeset
89 launch(args);
e58f5f74748e create foundation
sugi
parents:
diff changeset
90 }
377
ca093d55a886 Aquarium for javaFX worked But Only one Node.
sugi
parents: 375
diff changeset
91
375
e58f5f74748e create foundation
sugi
parents:
diff changeset
92 }