JavaFX webview : les boutons d'action dans les pop ups ne fonctionnent pas
Bonjour, j'ai un léger problème sur un navigateur que je suis en train de développer en java FX : j'ai enfin réussi a afficher les pop up dans une autre fenêtre webview, je l'ai testé sur ce site : http://www.i-am-bored.com/pop_up_blocker_test.html les pop ups s'affichent bien mais le bouton close ne marche pas, je suis obligé d'appuyer sur la croix en haut a gauche pour le fermer, l'un d'entre vous a-t-il une solution ?
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| package popuptest;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javafx.application.Application;
import javafx.beans.value.ObservableValue;
import javafx.event.EventHandler;
import javafx.geometry.Rectangle2D;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebEvent;
import javafx.scene.web.WebView;
import javafx.stage.Modality;
import javafx.stage.Screen;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import org.w3c.dom.Document;
public class Popuptest extends Application {
@Override public void start(final Stage primaryStage) {
WebView webView = new WebView();
WebEngine engine = webView.getEngine();
engine.load("http://www.i-am-bored.com/pop_up_blocker_test.html");
webView.getEngine().setOnAlert(new EventHandler<WebEvent<String>>() {
@Override public void handle(WebEvent<String> event) {
Stage popup = new Stage();
popup.initOwner(primaryStage);
popup.initStyle(StageStyle.UTILITY);
popup.initModality(Modality.WINDOW_MODAL);
StackPane content = new StackPane();
content.getChildren().setAll(
new Label(event.getData())
);
content.setPrefSize(200, 100);
popup.setScene(new Scene(content));
popup.showAndWait();
}
});
final Scene scene = new Scene(webView);
Rectangle2D ecran = Screen.getPrimary().getVisualBounds();
primaryStage.setX(ecran.getMinX());
primaryStage.setX(ecran.getMinY());
primaryStage.setWidth(ecran.getWidth());
primaryStage.setHeight(ecran.getHeight());
primaryStage.setTitle("Cete fenêtre affiche les pop ups");
primaryStage.setScene(scene);
primaryStage.show();
}
} |