当前位置: 首页 > 知识库问答 >
问题:

如何从JavaSwing GUI打开JavaFX GUI?

咸浩初
2023-03-14

我创建了一个摇摆图形用户界面和一个使用JavaFX的图形。我想通过点击摇摆图形用户界面上的按钮来打开图形。我的代码在下面。谢谢你的帮助。

这就是我必须从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);
    }
}

共有1个答案

贺奕
2023-03-14

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

此外,强烈建议不要在同一应用程序中同时使用JavaFXStages和SwingJFrames。您应该将JavaFX内容放在JFXPanel中,并在JFrame中显示JFXPanel。您需要小心遵守这两个工具包的线程限制:通常,Swing组件必须在AWT事件分派线程上创建,而JavaFX组件必须在JavaFX应用程序线程上创建。这在JFXPanel文档中有详细介绍,但本质上:

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);
    }       
});
 类似资料:
  • 我想从我有gridview的MainActivity中打开一个片段。我是android新手,这是第一次使用fragment。这是我的主要活动: 这是我想从gridview打开的片段: 我尝试了FragmentManager fm=getSupportFragmentManager(); FragmentTransaction ft=fm.beginTransaction();ft.replace(

  • 要从终端编辑文件,我使用 subl(用于Sublime的文本)来编辑文件;示例:如果我需要编辑应用程序.js文件,我使用 subl 应用程序.js有什么方法可以设置网络Storm以从终端打开吗?

  • 问题内容: 我的问题是所有使用示例都需要您通过一个阶段。唯一的问题是,我的UI是在文件中定义的,该文件使用与主阶段分离的控制器类。 我该怎么做才能使其正常工作?就像我说的那样,我在控制器类中没有任何阶段的引用,那我该怎么办? 问题答案: 对于场景中的任何节点(例如,根节点;但是注入的任何节点都可以),请执行

  • 你好,我是新的使用硒,我试图从网页上执行一些测试。 这是我的代码: 我可以毫无问题地进入页面,我可以输入登录的用户和密码,但下一页有一个胡佛菜单,我无法使用,并停止自动执行。 这是xpath和csspath: xpath:/html/body/div[3]/div/div/form/div/ul/li[1]/ul/li[1]/a/span csspath: html body div#conten

  • 问题内容: 我想重新打开一个文件。我在输入流中有一个文件。我尝试使用Scanner和BufferedReader。但是使用close()方法关闭文件后,我无法再次打开该文件。请帮助如何再次打开文件。我写了下面的代码: 问题答案: 流,读取器,写入器,套接字或任何其他资源关闭后,您将无法再次打开它。 如果要多次读取文件,则需要具有文件名。

  • 问题内容: 给定来自Linux上Java的UNC路径,是否有可用的库可让我读取和写入Windows Fileshare。 在Windows框本身上这是微不足道的,而且我知道smbclient的方法,但是我希望通过放入库来实现。 谢谢。 问题答案: 看看jcifs。听起来像您要找的东西。 从jcifs站点: JCIFS是一个开放源代码客户端库,它以100%Java实现了CIFS / SMB网络协议。