【问题标题】:How can I open a JavaFX GUI from JavaSwing GUI?如何从 Java Swing GUI 打开 JavaFX GUI?
【发布时间】:2017-03-13 14:29:51
【问题描述】:

我使用 JavaFX 创建了一个 swing GUI 和一个图形。我想通过单击 swing GUI 上的按钮来打开图表。我的代码如下。谢谢您的帮助。

这就是我必须从 swing GUI 打开 FX GUI。

btnNewButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
        Test Graph = new Test();
        Graph.GrpahScreen();
    }       
});

外汇类

public class Test extends Application {

    @Override 
    public void start(Stage stage) {
        // TODO
    }

    public static void main(String args []) {
        launch(args);
    }
}

【问题讨论】:

    标签: java swing user-interface javafx


    【解决方案1】:

    Application 类表示 JavaFX 应用程序。由于您正在编写一个 Swing 应用程序(其中嵌入了 JavaFX 内容),因此创建 Application 子类是没有意义的。

    此外,强烈建议不要在同一应用程序中同时使用 JavaFX Stages 和 Swing JFrames。您应该将 JavaFX 内容放在 JFXPanel 中,并在 JFrame 中显示 JFXPanel。您需要注意遵守两个工具包的线程限制:像往常一样,Swing 组件必须在 AWT 事件调度线程上创建,JavaFX 组件必须 在 JavaFX 应用程序上创建 Thread。这在JFXPanel documentation 中有详细介绍,但本质上:

    btnNewButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            JFrame frame = new JFrame();
            JFXPanel jfxPanel = new JFXPanel();
            Platform.runLater(() -> {
                Parent root = ... ; // create JavaFX content, can be in a separate class
                Scene scene = new Scene(root);
                jfxPanel.setScene(scene);
            });
            frame.add(jfxPanel);
            frame.setSize(...);
            frame.setVisible(true);
        }       
    });
    

    【讨论】:

      猜你喜欢
      • 2013-01-18
      • 2021-07-04
      • 2013-09-24
      • 1970-01-01
      • 2018-03-22
      • 2021-11-09
      • 1970-01-01
      • 2012-06-26
      • 2015-09-11
      相关资源
      最近更新 更多