多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
当您使用菜单栏将BrowserView组件嵌入Java Swing框架时,默认情况下您可以看到浏览器组件覆盖弹出菜单,如以下屏幕截图所示: ![](https://box.kancloud.cn/c304915155f9de581f2515946d44ba61_450x320.png) 这个问题的原因是混合轻量级弹出菜单和重量级浏览器组件(默认情况下,浏览器组件总是重量级)。要解决此问题,您需要使用以下命令禁用弹出窗口的轻量级实现: ``` JPopupMenu.setDefaultLightWeightPopupEnabled(false); ``` 此代码强制所有Swing弹出菜单都是重量级的。结果您没有看到问题: ![](https://box.kancloud.cn/b8024b36563e27ee3cf336b0026d071b_450x320.png) ``` import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.swing.BrowserView; import javax.swing.*; import java.awt.*; public class BrowserSample { public static void main(String[] args) { JPopupMenu.setDefaultLightWeightPopupEnabled(false); Browser browser = new Browser(); BrowserView view = new BrowserView(browser); JMenu fileMenu = new JMenu("File"); fileMenu.add(new JMenuItem("Open...")); fileMenu.add(new JMenuItem("Close")); JMenuBar menuBar = new JMenuBar(); menuBar.add(fileMenu); JFrame frame = new JFrame(); frame.setJMenuBar(menuBar); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(new JTextField("http://www.google.com"), BorderLayout.NORTH); frame.add(view, BorderLayout.CENTER); frame.setSize(425, 290); frame.setLocationRelativeTo(null); frame.setVisible(true); browser.loadURL("http://google.com"); } } ```