2016-10-03 54 views
2

我想使用Javafx Scene Builder創建一個小程序。我知道創建applet的傳統方式,但最近我開始使用JavaFx,並且愛上了使用Scene Builder創建出色用戶界面設計的方式,然後編寫整潔的定製代碼。所以,我可以使用JavaFx創建桌面程序,但現在我想編寫小型實用程序並將其嵌入到瀏覽器中。我老實說不喜歡編寫代碼來創建U.I.的一個小程序,所以我在想如果有一種方法可以使用Javafx創建一個小程序。是否可以使用JavaFx創建Java小程序?

P.S - 我是新來的Stackoverflow。所以,請原諒我犯的任何錯誤。

+2

看看非小應用程序瀏覽器部署http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm和http://stackoverflow.com/questions/19102000/javafx-can-it-really-被部署在瀏覽器中 –

回答

2

小蘋果是一種死的技術,所以你應該完全忘記它們。至少在最新的Chrome瀏覽器中已經刪除了對小程序的支持,最有可能的是其他程序。

無法通過JavaFX創建小程序。

+1

創建JavaFX小程序在技術上仍然是可能的,而Oracle仍然提供[工具](http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/)使您能夠這樣做。然而,你是[完全正確](http://openjdk.java.net/jeps/289),這是一種死亡的技術,你應該尋找替代方法。 –

+0

@James_D我的錯誤。我的印象是,JavaFX從來沒有擴展到小應用程序,因爲它們已經處於廢棄狀態很長一段時間了。 – Kayaman

2

這是可以做到多虧了JFXPanel允許嵌入一個JavaFX成分爲Swing組件,並通過Swing組件,您可以輕鬆創建一個Applet

這裏是繪製Java FXRectangleApplet一個例子:

public class Main extends Applet { 

    private void initAndShowGUI() { 
     // This method is invoked on Swing thread 
     final JFXPanel fxPanel = new JFXPanel(); 
     fxPanel.setPreferredSize(new Dimension(100, 100)); 
     add(fxPanel); 
     setVisible(true); 
     Platform.runLater(
      new Runnable() { 
       @Override 
       public void run() { 
        initFX(fxPanel); 
       } 
      } 
     ); 
    } 

    private static void initFX(JFXPanel fxPanel) { 
     // This method is invoked on JavaFX thread 
     final Scene scene = createScene(); 
     fxPanel.setScene(scene); 
    } 

    private static Scene createScene() { 
     final Rectangle rectangle = new Rectangle(100.0, 100.0); 
     rectangle.setFill(Color.BLACK); 
     return new Scene(new VBox(rectangle)); 
    } 

    @Override 
    public void init() { 
     SwingUtilities.invokeLater(
      new Runnable() { 
       @Override 
       public void run() { 
        initAndShowGUI(); 
       } 
      } 
     ); 
    } 
} 

然而小程序已經過時並很快就會消失,所以如果你能避免使用它們,只是不不會使用它們。或者,您可以使用Deployment Toolkit library將您的JavaFX application嵌入到網頁中或從瀏覽器啓動它,關於此方法的更多詳細信息here

+0

但是,您可以使用JavaFX創建小程序,而無需將它們嵌入到Swing中。除非絕對必要,否則應該避免混合兩個工具包。 –

+0

@James_D如果有請提供答案,那麼我只能提出我所知道的是否有更好的方法我會很高興知道它 –

+0

@Kayaman提供了正確的答案:Applets將在Java 9中棄用,而您應該避免完全使用它們(使用Swing或使用JavaFX)。我已經在這個問題下面提供了一個[鏈接](http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/)給那些堅持忽略[官方立場](http://openjdk.java.net/jeps/289)。 –

相關問題