2011-12-19 26 views
8

Eski Java uygulamalarını severim. Ama JFX'in çalışma şeklini gerçekten çok beğendiğim için, onu kullanarak bazı oyunlar yazmak istiyorum (hatta bunu bilen oyun sistemi bile), ancak bunları web siteme gönderebilmek istiyorum. Bunu yapmak nasıl olur?JavaFX web uygulaması yapmak mümkün mü?

cevap

4

Evet

http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/deployment_toolkit.html#BABJHEJA, içine bir JavaFX GUI gömebilirsiniz Salıncak tabanlı JApplet. Bunu JFXPanel kullanarak yapabilirsiniz - temelde Swing ve JavaFX panelleri arasında bir adaptördür.

Komple örnek:

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 
    } 
} 

Ve bunun için bir test uygulaması: ayarlar-up JavaFX GUI
FXApplet sınıf

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); 
    } 
} 

Alternatif olarak, FXApplet gist kullanabilirsiniz Bazı belgeler de içerir.

İlgili konular