【问题标题】:Resize SwingNode in Pane在窗格中调整 SwingNode 的大小
【发布时间】:2015-08-16 02:57:08
【问题描述】:

我对使用 JavaFX 还很陌生,我希望将 JPanel 添加到 JavaFX 窗格中。我目前拥有的代码有效,但是面板非常小。我希望能够调整它的大小,使其适合 JavaFX 窗格。

代码:

    // Add swing component to JFX
    final SwingNode swingNode = new SwingNode();

    createAndSetSwingContent(swingNode);
    detailPane.getChildren().add(swingNode);

创建 Swing 内容方法:

 private void createAndSetSwingContent(final SwingNode swingNode) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {

            //Create the  viewing pane.
            dataComponentDetailPane = new JEditorPane();
            dataComponentDetailPane.setEditable(false);
            dataDetailView = new JScrollPane(dataComponentDetailPane);

            // Create panel
            mainSwingPanel = new JPanel();
            mainSwingPanel.add(dataDetailView);
            swingNode.setContent(mainSwingPanel);
        }
    });
}

如何使 SwingNode/JPanel 适合 JavaFX 窗格的大小?

我正在使用 FMXL 创建 Java FX 窗格。提前致谢 !

【问题讨论】:

    标签: java javafx javafx-2 fxml


    【解决方案1】:

    我遇到了和你一样的问题,PanelSwingNode 之间确实存在问题,我不知道确切原因,但我还没有找到将这 2 个一起使用的方法.

    现在我有 2 个解决方案

    • 您可以阅读this,如果您使用group,请致电:setAutosizeChildren(false),就像解决方案一样。
    • 你可以不使用JPanel来实现SwingNode,只要把它放在你有的JavaFX Pane中,它就会自动适应。

    如果这不起作用,请发布可编译的代码。

    【讨论】:

    • 感谢您的回复,我试图重新使用我在面板中创建的自定义摆动组件,所以真的很懒惰,但我刚刚开始在 FX 中重新编写它们。再次感谢您的 cmets!
    • 最好避免在 JavaFX 中使用 Swing,因为 SwingNode 不适用于大型应用程序 :)
    • 是的,我发现这很困难!哈哈,谢谢:)
    • 我正在尝试转换使用 jgraphx(基于 awt/swing)的应用程序。有什么通用的解决方案吗?
    【解决方案2】:

    我也有同样的问题,我的解决方法是:

    1. 使用 AnchorPane 窗格:

     AnchorPane detailPane;
    

    2。创建你的 SwingNode(像你一样):


    createAndSetSwingContent(swingNode);;                       
    // add the following code to make sure the swing node grows with the window.
    AnchorPane.setTopAnchor(swingNode, 0d);
    AnchorPane.setBottomAnchor(swingNode, 0d);
    AnchorPane.setRightAnchor(swingNode, 0d);
    AnchorPane.setLeftAnchor(swingNode, 0d);  
    
    detailedPane.getChildren().add(swingNode); // Adding swing node
    

    【讨论】:

      猜你喜欢
      • 2018-03-10
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      • 2014-08-15
      • 1970-01-01
      相关资源
      最近更新 更多