Saya menggunakan Java JxBrowser untuk menampilkan situs web di aplikasi swing saya. Saat mengklik tautan di situs web ini, biasanya akan membuka tab baru (di google chrome misalnya). Tetapi aplikasi saya membuka popup untuk menampilkan jendela baru. Apakah mungkin untuk memperbarui jframe aplikasi saya, sehingga popup tetap berada di jframe? Terima kasih!

1
Tailor 4 Maret 2019, 11:47

1 menjawab

Jawaban Terbaik

Anda dapat menulis sendiri PopupHandler untuk memilih lokasi Browser akan muncul :

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);
2
Florent Bayle 4 Maret 2019, 10:20