jxbrowser 6.0 のポップアップ ハンドラを実装しました。
ポップアップが閉じられたことをメイン ブラウザに送信する (イベント) 方法はありますか?
メイン ブラウザは、開いているポップアップが閉じられるまで、このアクティビティを一時停止する必要があります。
jxbrowser 6.0 のポップアップ ハンドラを実装しました。
ポップアップが閉じられたことをメイン ブラウザに送信する (イベント) 方法はありますか?
メイン ブラウザは、開いているポップアップが閉じられるまで、このアクティビティを一時停止する必要があります。
ポップアップがいつ閉じられるかを調べるには、次の方法を使用します。
browser.setPopupHandler(new PopupHandler() {
public PopupContainer handlePopup(PopupParams params) {
return new PopupContainer() {
public void insertBrowser(final Browser browser, final Rectangle initialBounds) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
BrowserView popupView = new BrowserView(browser);
popupView.setPreferredSize(initialBounds.getSize());
final JFrame popupFrame = new JFrame("Popup");
popupFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
popupFrame.add(popupView, BorderLayout.CENTER);
popupFrame.pack();
popupFrame.setLocation(initialBounds.getLocation());
popupFrame.setVisible(true);
popupFrame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
browser.dispose();
}
});
browser.addDisposeListener(new DisposeListener<Browser>() {
public void onDisposed(DisposeEvent<Browser> event) {
popupFrame.setVisible(false);
// Notify parent that popup has been closed.
}
});
}
});
}
};
}
});
ブール変数を使用した実行中のソリューションを既に見つけていましたが、よりエレガントなソリューションが必要です。
browser.addDisposeListener(new DisposeListener() {
public void onDisposed(DisposeEvent event) {
finestraAComparsa.setVisible(false);
Automazione.finestraAComparsaChiusa = true;//
// Notify parent that popup has been closed.
}
});
メインのブラウザー クラス ファイルで:
try {
while (!finestraAComparsaChiusa) {
Thread.sleep(1000);
}
finestraAComparsaChiusa = false;
} catch (InterruptedException ex) {
ex.printStackTrace();
}