JavaFX Tips and Tricks: Invoking JavaFX Functions from Java

Tophat-wandOccasionally the requirement arises to call a JavaFX function from within a Java method. I needed to do this yesterday, so I thought I'd take a moment to explain a way to do this in three simple steps:
  1. Create a Java interface
  2. Extend the interface with a JavaFX class, implementing any functions defined by the interface
  3. Obtain a reference to, and call a function of, the JavaFX class defined by the interface

Here are snippets of the code that I created yesterday in the context of the steps listed above:

Create the Java interface

public interface UniverseHandler {
public void onSphereClicked(SphereBranch sphereBranch);
}


Extend the interface with a JavaFX class, implementing any functions defined by the interface

public class WindshieldModel extends UniverseHandler {
...model code omitted...

/**
* This is called when user clicks a sphere on the 3D Canvas
*/
public override function onSphereClicked(sphereBranch:SphereBranch) {
curSphereBranch = sphereBranch;
}
}


Obtain a reference to, and call a function of, the JavaFX class defined by the interface

 universeHandler.onSphereClicked(currentSphereBranch);

The universeHandler was passed into the constructor of the Java class.

Thanks again to InteractiveMesh.org for their lightweight 3D canvas and classes that enable JavaFX/Java 3D integration!

0 comments:

Yang Sering Dibaca: