Сценарий, используемый в JavaFX, является открытым исходным кодом. Вы можете проверить это здесь (https://scenegraph.dev.java.net). Хотя сайт не был обновлен, чтобы отразить окончательную версию, поставляемую с JavaFX 1.x, вы все равно можете использовать jar, который поставляется с JavaFX SDK и смешивать сцены и свинг-узлы внутри вашего Swing-приложения. Однако у вас будут некоторые трудности, потому что для этой версии scenegraph нет официального API.
Вот "привет мир", использующий сценограф, который поставляется с JavaFX 1.0. Не забудьте включить «Scenario.jar» в путь сборки.
import java.awt.Color;
import java.awt.Paint;
import java.awt.geom.Point2D;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import com.sun.scenario.scenegraph.JSGPanel;
import com.sun.scenario.scenegraph.SGGroup;
import com.sun.scenario.scenegraph.fx.FXText;
public class HelloWorldScenario101 implements Runnable {
/**
* @param args
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new HelloWorldScenario101());
}
public HelloWorldScenario101() {
//
}
@Override
public void run() {
this.frame = new JFrame();
this.panel = new JSGPanel();
this.text = new FXText();
this.paint = new Color(255, 0, 0, 255);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Hello World");
frame.add(this.panel);
frame.setContentPane(this.panel);
scene = new SGGroup();
this.text.setText("Hello World");
this.text.setFillPaint(this.paint);
this.text.setLocation(new Point2D.Float(10, 10));
this.scene.add(this.text);
this.panel.setScene(scene);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
private JFrame frame;
private JSGPanel panel;
private SGGroup scene;
private FXText text;
private Paint paint;
}