JavaFX in Java Applikation einbinden

lazydog

Mitglied
Hallo,

ich möchte gerne ein JavaFX Objekt in eine bestehende Java Anwendung einbinden (was ja grundsätzlich gehen soll). Ich habe im Web einige Beispiele gefunden, bekomme allerdings nichts davon ans laufen. Kann mir vielleicht irgendjemand mit einem funktionierenden Stück Code auf die Sprünge helfen? Meine Rahmenbedingungen sind Eclipse 3.6.1 und das Exadel JavaFX Plugin 1.3.5

vielen Dank für jede Hilfe
ld
 
Hallo CKingZesi,

Hast du JavaFX in Eclipse schon erfolgreich integrieren können?
http://download.oracle.com/javafx/1....gin/index.html

das Plugin habe ich als erstes - aber erfolglos - ausprobiert.

Mit dem Exadel Plugin http://www.exadel.com/web/portal/javafxstudio lässt sich reiner JavaFX Code problemlos ausführen.

Allerdings ist es mir bisher nicht gelungen, ein JavaFX Objekt aus einer Java-Anwendung heraus zu instanziieren - was meine eigentliche Aufgabenstellung war (s.o.). Es gibt hier einige Beispiele im Netz z.B. http://www.javafxgame.com/calling-javafx-classes-from-java-code/ die mich zunächst hoffnungsfroh gestimmt hatten, allerdings funktioniert von all dem gar nichts und ich weiss nicht, ob das nun am Plugin oder meiner Doofheit liegt. Vielleicht gibt es dazu ja doch noch von irgendowher einen hilfreichen Tipp?

Beste Grüße
ld
 
ich habe zwischenzeitlich ein Beispiel gefunden, das das macht was ich wollte (s.u.):

1. Main.java
Code:
package evaljavafx;

import javax.script.ScriptEngineManager;
import com.sun.javafx.api.JavaFXScriptEngine;

public class Main {

  public static void main (String[] args) {
    ScriptEngineManager manager =
        new ScriptEngineManager();

    JavaFXScriptEngine fxEngine = 
        (JavaFXScriptEngine) manager.getEngineByName("javafx");

    try {

      String param = "String to be printed by JFX";

      String script = String.format (
          "evaljavafx.MyJavaFXClass {property: \"%s\"}", param);

      Object o = fxEngine.eval(script);

      fxEngine.invokeMethod(o, "printProperty");
    } catch (Exception ex) {
      ex.printStackTrace();
    }		
  }
}

2. MyJavaFXClass.fx
Code:
package evaljavafx;

import java.lang.System;

public class MyJavaFXClass {

    public var property: String;

    public function printProperty() {
        System.out.println(property);
    }
}

Wichtig hier: die Library javafxc.jar in Classpath aufnehmen!

Gruss
ld
 
Zurück