要处理JavaFX应用程序中的弹出窗口,您有两种选择:
1.注册默认的JavaFX弹出处理程序实现:
```
browser.setPopupHandler(new com.teamdev.jxbrowser.chromium.javafx.DefaultPopupHandler());
```
2.在您决定要显示新弹出窗口的确切位置时,注册您自己的实现:
```
browser.setPopupHandler(new PopupHandler() {
public PopupContainer handlePopup(PopupParams params) {
return new PopupContainer() {
public void insertBrowser(final Browser browser, final Rectangle initialBounds) {
Platform.runLater(new Runnable() {
@Override
public void run() {
final Stage stage = new Stage();
StackPane root = new StackPane();
Scene scene = new Scene(root, 800, 600);
BrowserView browserView = new BrowserView(browser);
root.getChildren().add(browserView);
stage.setScene(scene);
stage.setTitle("Popup");
if (!initialBounds.isEmpty()) {
stage.setX(initialBounds.getLocation().getX());
stage.setY(initialBounds.getLocation().getY());
stage.setWidth(initialBounds.width);
stage.setHeight(initialBounds.height);
}
stage.setOnCloseRequest(new EventHandler() {
public void handle(javafx.stage.WindowEvent event) {
browser.dispose();
}
});
browser.addDisposeListener(new DisposeListener() {
public void onDisposed(DisposeEvent event) {
Platform.runLater(new Runnable() {
public void run() {
stage.close();
}
});
}
});
stage.show();
}
});
}
};
}
});
```