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

Swing应用程序中的Java Fx:JFxPanel被添加到JPanel中,直到在JPanel中单击鼠标才部署

孙钱青
2023-03-14

我在Swing应用程序中使用JavaFx:JFxPanel的实例被添加到JPanel中,直到在JPanel中单击鼠标,它才会部署。

JavaFx Panel带有CSS并使用FXML。加载XML时间和CSS文件时间通过缓冲一次来减少,并通过读取已创建的文件来重用。

然而,面板的部署不会发生,直到鼠标点击甚至在SwingU内的代码之后tilities.invoke稍后已经执行。

我怎样才能让JavaFx像普通Panel一样工作,而无需等待用户点击。

注意:我不想使用另一个JFrame和JDialog弹出窗口来显示JFxPanel。

private void displayJFxGUI() {

    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {


           JFxPanelInit jfxPanelInit = new JFxPanelInit();
           JFxPanel jfxPanel = new JFxPanel();

            jfxPanelInit.initAndShowGUI(jfxPanel);

            swingImageEditingPanel.add(jfxPanel);
            swingImageEditingPanel.setVisible(true);
            jfxPanel.setVisible(true);
            setVisible(true);
        }
    });

}

共有1个答案

舒斯伯
2023-03-14

唯一需要在FX线程中运行的是场景创建。

SwingUtilities.invokeLater(() -> {
  FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/FXPanel.fxml"));
  AnchorPane root = (AnchorPane) loader.load();
  _fxmlController = loader.getController();

  _panel.setLayout(new BorderLayout());
  _panel.add(_jfxPanel, BorderLayout.CENTER);

  Platform.runLater(() -> {
    _jfxPanel.setScene(new Scene(root, Color.ALICEBLUE));
  });
}
 类似资料:
  • 我一直在使用JFrame进行我的项目,但遇到了一个问题。这是我的代码: 还有,这是我的主要。java: 我想做的是向面板添加文本字段和标签。但是,当我运行此代码时,它会显示:结果 如果我在框架中添加标签和文本字段,效果很好。你能帮我解决这个问题吗?非常感谢你。

  • 我正在尝试做一个简单的绘画申请。我有一个main方法,它设置一个JFrame,然后使用FlowLayout添加一个JPanel和一个JLabel。JLabel用于计算点击次数。 panel类实现了mouselistener和MousEmotionListener。 问题是,当我画一些东西或点击面板时,它也会将标签添加到JPanel中,而且根据我点击的位置,它还会将标签添加到面板中两次,这让我很生气

  • 我目前正在尝试使用Swift中的GridBagLayout构建GUI。 在尝试为我正在处理的项目制作GUI时,遇到了一个问题: 创建物品列表时,面板超过了我的屏幕高度,因此我将框架的首选大小设置为900像素。 但是,该列表的高度超过900像素。因此,我尝试将一个JScrollPane添加到包含列表的面板中。只是没有一个。 我的框架架构是这样的:框架f- 我将ScrollPane应用于这些对象中的任

  • 我有一个JFrame(黑色)包含一个主JPanel(灰色),这个JPanel包含另外三个JPanels:North和South(红色)以及Center(蓝色)。中央的蓝色JPanel将在程序过程中动态添加大量的JPanel(绿色)。当中心JPanel已满时,我希望一个JScrollbar自动出现,向下滚动中心面板,并看到它包含的所有子(绿色)面板。谁能帮帮我吗?问题是滚动条根本没有出现,如果我在蓝

  • 问题内容: 将包含图形的添加到时,效果很好。但是,当我尝试添加 其中添加了其他图形的时,它不会显示在中。请参见下面的代码 问题答案: 请注意类的构造函数,使其成为您的习惯,以遵循本示例中所示的顺序。首先向中添加组件,然后再进行调用,例如 ,而不是在此之前。 始终把它当作习惯,每当您覆盖方法时,也要覆盖方法。 并始终像在EDT- 事件调度线程中那样发出呼叫。请阅读Swing中的Concurrency

  • 问题内容: 我正在尝试制作一个通过JToggleButton激活的弹出面板。我希望在选择ToggleButton时将JPanel添加到另一个Jpanel上,而在取消选择ToggleButton时将其隐藏。 我已经声明了JToggleButton并使用了ItemListener。但是发生的事情是,当我选择ToggleButton时,如果我取消选择并再次选择它,则会创建一个面板,然后再次添加另一个JP