2016-10-03 52 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)。 –

相关问题