Module  javafx.swing
软件包  javafx.embed.swing

Class JFXPanel

  • All Implemented Interfaces:
    ImageObserverMenuContainerSerializable


    public class JFXPanel
    extends JComponent
    JFXPanel是将JavaFX内容嵌入到Swing应用程序中的组件。 要显示的内容使用接受JavaFX Scene实例的setScene(javafx.scene.Scene)方法指定。 场景分配后,会自动重画。 所有输入和焦点事件都将透明地转发给开发人员。

    JFXPanel有一些限制。 作为Swing组件,只能从事件分派线程访问,除了可以在事件分派线程或JavaFX应用程序线程上调用的setScene(javafx.scene.Scene)方法。

    这是一个典型的模式如何使用JFXPanel

      public class Test {
    
             private static void initAndShowGUI() {
                 // This method is invoked on Swing thread
                 JFrame frame = new JFrame("FX");
                 final JFXPanel fxPanel = new JFXPanel();
                 frame.add(fxPanel);
                 frame.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
                 Scene scene = createScene();
                 fxPanel.setScene(scene);
             }
    
             public static void main(String[] args) {
                 SwingUtilities.invokeLater(new Runnable() {
                     @Override
                     public void run() {
                         initAndShowGUI();
                     }
                 });
             }
         } 
    从以下版本开始:
    JavaFX 2.0
    另请参见:
    Serialized Form