我想在 JFrame 中实现 Java Swing 浏览器,可从 Net Beans Gui Builder 获得。我找到了Oracle 示例 - 使用 J 在 Swing 中使用 JavaFX。它可以工作,但 Net Beans Gui Builder 在此应用程序中不可用。我创建了新的 JFrame,可从 Net Beans Gui Builder 获得。我尝试将 WebEngine 粘贴到 JFXPanel(名为 jfxPanel)中,就像在示例中一样,但是在运行时面板没有出现在我的 JFrame 中(浏览器正在工作 - 我得到了文本信息,但它不可见)。如何解决问题?我想问题是 GUI Builder 在 initComponents 中使用了另一个布局,我不知道如何将我的面板添加到 JFrame。
public SimpleSwingBrowser() {
super();
createScene();
initComponents();
panel.add(jfxPanel, BorderLayout.CENTER);
getContentPane().add(panel);
pack();
}
在这个问题中,展示了如何使用 Java Swing 创建浏览器,但我不知道如何使其与 NetBeans GUI Builder 一起工作。例如,如果我评论
//initComponents();
在下面的代码中
public BrowserFrame() {
initComponents();
}
private void initAndShowGUI() {
// This method is invoked on the EDT thread
//JFrame frame = new JFrame("Swing and JavaFX");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JFXPanel fxPanel = new JFXPanel();
this.jPanel1.add(fxPanel, BorderLayout.CENTER);
this.pack();
this.jPanel1.setSize(640, 480);
this.setLocationRelativeTo(null);
this.setVisible(true);
Platform.runLater(() -> {
initFX(fxPanel);
});
}
一切正常,但我无法评论这段代码,我想同时使用 GUI Builder 和 fxPanel。如何使它们一起工作(GUI Builder 生成的代码和 fxPanel 与浏览器)?