XdevJFXPanel

Anfang  Zurück  Vor

Letzte Änderung 18.06.2016

 

Mit dem XdevJFXPanel lassen sich JavaFX Komponenten und vollständige JavaFX Anwendungen einbinden.

 

clip0639

 

 

JavaFX Beispiel:

// Spielt eine Animation ab

private Scene createScene()
{
   Group root = new Group();
   Scene scene = new Scene(root,800,600,Color.BLACK);
   
   Group circles = new Group();
   for(int i = 0; i < 30; i++)
   {
      Circle circle = new Circle(150,Color.web("white",0.05));
      circle.setStrokeType(StrokeType.OUTSIDE);
      circle.setStroke(Color.web("white",0.16));
      circle.setStrokeWidth(4);
      circles.getChildren().add(circle);
   }
   Rectangle colors = new Rectangle(scene.getWidth(),scene.getHeight(),new LinearGradient(0f,
         1f,1f,0f,true,CycleMethod.NO_CYCLE,
         new Stop[]{new Stop(0,Color.web("#f8bd55")),new Stop(0.14,Color.web("#c0fe56")),
               new Stop(0.28,Color.web("#5dfbc1")),new Stop(0.43,Color.web("#64c2f8")),
               new Stop(0.57,Color.web("#be4af7")),new Stop(0.71,Color.web("#ed5fc2")),
               new Stop(0.85,Color.web("#ef504c")),new Stop(1,Color.web("#f2660f")),}));
   colors.widthProperty().bind(scene.widthProperty());
   colors.heightProperty().bind(scene.heightProperty());
   Group blendModeGroup = new Group(
         new Group(new Rectangle(scene.getWidth(),scene.getHeight(),Color.BLACK),circles),
         colors);
   colors.setBlendMode(BlendMode.OVERLAY);
   root.getChildren().add(blendModeGroup);
   circles.setEffect(new BoxBlur(10,10,3));
   Timeline timeline = new Timeline();
   for(Node circle : circles.getChildren())
   {
      timeline.getKeyFrames()
            .addAll(new KeyFrame(Duration.ZERO, // set start position at 0
                  new KeyValue(circle.translateXProperty(),random() * 800),
                  new KeyValue(circle.translateYProperty(),random() * 600)),
                  new KeyFrame(new Duration(40000), // set end position at 40s
                        new KeyValue(circle.translateXProperty(),random() * 800),
                        new KeyValue(circle.translateYProperty(),random() * 600)));
   }
   // play 40s of animation
   timeline.play();
   
   return scene;
}

 

 

Aufruf der JavaFX Animation:

// Aufruf im init() Event des XdevJFXPanel

@EventHandlerDelegate
void jFXPanel_init()  
{ 
   UIUtils.runInJFXThread(() -> jFXPanel.setScene(createScene()));
} 

 

Hinweis:

Achten Sie darauf, dass Sie Ihre JavaFX Anwendung immer in einem eigenen Thread starten. Für dieses Beispiele sind sehr viele Imports notwendig um die entsprechenden JavaFX Klassen einzubinden.

 

 

 

Wichtigste Methoden

 

setScene(Scene newScene)

 

Weist dem XdevJFXPanel eine neue JavaFX Scene zu und führt diese aus.

Scene newScene - Erzeugt eine neue JavaFX Scene.

 

// Weist dem jFXPanel die neue JavaFX Scene zu, die mit der Methode createScene() erzeugt wird
jFXPanel.setScene(createScene());

 

Hinweis:

In der Methode createScene() befindet sich der JavaFX Code.