在窗格中调整 SwingNode 的大小
Resize SwingNode in Pane
我对使用 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 面板。提前致谢 !
我遇到了和你一样的问题,在 Panel
和 SwingNode
之间确实存在 问题,我不知道确切原因,但我有找不到这两个一起使用的方法。
现在我有 2 个解决方案 :
- 您可以阅读 this 如果您使用
group
调用:setAutosizeChildren(false)
就像解决方案一样。
- 你可以不使用JPanel实现
SwingNode
,只要把它放在你已有的JavaFX Pane
中,它会自动适应。
如果这不起作用,post 可编译代码。
我也遇到了同样的问题,我的解决方法是:
- 使用 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
我对使用 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 面板。提前致谢 !
我遇到了和你一样的问题,在 Panel
和 SwingNode
之间确实存在 问题,我不知道确切原因,但我有找不到这两个一起使用的方法。
现在我有 2 个解决方案 :
- 您可以阅读 this 如果您使用
group
调用:setAutosizeChildren(false)
就像解决方案一样。 - 你可以不使用JPanel实现
SwingNode
,只要把它放在你已有的JavaFX Pane
中,它会自动适应。
如果这不起作用,post 可编译代码。
我也遇到了同样的问题,我的解决方法是:
- 使用 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