我使用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窗格。提前致谢 !
答案 0 :(得分:2)
我遇到了与你相同的问题,Panel
和SwingNode
之间确实存在问题,我不知道原因,但我找不到方法一起使用这两个。
现在我有2个解决方案:
group
致电:setAutosizeChildren(false)
,请说明解决方案。SwingNode
,只需将其放入您拥有的JavaFX Pane
中,它就会自动适合。如果这不起作用,请发布可编辑的代码。
答案 1 :(得分:0)
我有同样的问题,我的解决方法是:
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