Lubię stare aplety Javy. Ale ponieważ bardzo podoba mi się sposób, w jaki działa JFX, chcę napisać kilka gier wykorzystujących to (lub nawet system tworzenia gier, kto wie?), Ale chciałbym móc opublikować je na mojej stronie. Jak to zrobi?Czy można wykonać aplet sieciowy JavaFX?
8
A
Odpowiedz
4
Tak, powinieneś być w stanie osadzić JavaFX na swojej stronie internetowej:
http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/deployment_toolkit.html#BABJHEJA
http://docs.oracle.com/javase/8/javase-clienttechnologies.htm
4
Tak, można osadzić JavaFX GUI w Swing oparte JApplet. Możesz to zrobić za pomocą JFXPanel - jest to w zasadzie adapter między panelami Swing i JavaFX.
Kompletny przykład:
Klasa FXApplet
że ustawia się GUI JavaFX:
public class FXApplet extends JApplet {
protected Scene scene;
protected Group root;
@Override
public final void init() { // This method is invoked when applet is loaded
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
initSwing();
}
});
}
private void initSwing() { // This method is invoked on Swing thread
final JFXPanel fxPanel = new JFXPanel();
add(fxPanel);
Platform.runLater(new Runnable() {
@Override
public void run() {
initFX(fxPanel);
initApplet();
}
});
}
private void initFX(JFXPanel fxPanel) { // This method is invoked on JavaFX thread
root = new Group();
scene = new Scene(root);
fxPanel.setScene(scene);
}
public void initApplet() {
// Add custom initialization code here
}
}
oraz wdrożenia testowego dla niego:
public class MyFXApplet extends FXApplet {
// protected fields scene & root are available
@Override
public void initApplet() {
// this method is called once applet has been loaded & JavaFX has been set-up
Label label = new Label("Hello World!");
root.getChildren().add(label);
Rectangle r = new Rectangle(25,25,250,250);
r.setFill(Color.BLUE);
root.getChildren().add(r);
}
}
Alternatywnie, można użyć FXApplet
gist , która obejmuje również pewną dokumentację.
Nie zaszkodzi pokazać przykład. Co jeśli linki nie działają? – blo0p3r