JxBrowser更新浏览器

问题描述 投票:1回答:1

我正在使用Java JxBrowser在我的swing应用程序上显示一个网站。点击此网站上的链接时,它通常会打开一个新标签(例如谷歌浏览器中)。但我的应用程序是打开一个弹出窗口来显示新窗口。是否可以更新我的应用程序的jframe,以便弹出窗口保留在jframe中?谢谢!

java swing browser jframe jxbrowser
1个回答
2
投票

您可以编写自己的PopupHandler来选择新的Browser将出现的位置:

JFrame frame = new JFrame();
frame.getContentPane().setLayout(new BorderLayout());

com.teamdev.jxbrowser.chromium.Browser browser = new com.teamdev.jxbrowser.chromium.Browser();
com.teamdev.jxbrowser.chromium.swing.BrowserView browserView = new com.teamdev.jxbrowser.chromium.swing.BrowserView(browser);

browser.setPopupHandler(new com.teamdev.jxbrowser.chromium.PopupHandler() {
    @Override
    public com.teamdev.jxbrowser.chromium.PopupContainer handlePopup(com.teamdev.jxbrowser.chromium.PopupParams params) {
        return new com.teamdev.jxbrowser.chromium.PopupContainer() {
            @Override
            public void insertBrowser(com.teamdev.jxbrowser.chromium.Browser popupBrowser, Rectangle initialBounds) {
                // do something with popupBrowser
                com.teamdev.jxbrowser.chromium.swing.BrowserView popupBrowserView = new com.teamdev.jxbrowser.chromium.swing.BrowserView(
                        popupBrowser);
                frame.getContentPane().removeAll();
                frame.getContentPane().add(popupBrowserView, BorderLayout.CENTER);
                frame.getContentPane().validate();
                frame.getContentPane().repaint();
            }
        };
    }
});

frame.getContentPane().add(browserView, BorderLayout.CENTER);
© www.soinside.com 2019 - 2024. All rights reserved.