75 lines
1.2 KiB
Java
Raw Normal View History

2020-04-20 13:46:18 +02:00
package ihm;
2020-04-22 20:42:18 +02:00
import javafx.event.EventHandler;
2020-04-22 16:56:45 +02:00
import javafx.scene.Parent;
2020-04-20 13:46:18 +02:00
import javafx.scene.Scene;
2020-04-22 20:42:18 +02:00
import javafx.scene.input.MouseEvent;
2020-04-20 13:46:18 +02:00
import javafx.stage.Modality;
import javafx.stage.Stage;
2020-04-22 20:42:18 +02:00
import javafx.stage.StageStyle;
2020-04-20 13:46:18 +02:00
2020-04-22 20:42:18 +02:00
public class PopUp{
2020-04-20 13:46:18 +02:00
private Scene scene;
2020-04-22 20:42:18 +02:00
private Stage popup;
private double xOffSet = 0;
private double yOffSet = 0;
2020-04-20 13:46:18 +02:00
2020-04-22 16:56:45 +02:00
public PopUp (Parent p, String titre) {
2020-04-21 15:23:24 +02:00
2020-04-22 20:42:18 +02:00
popup = new Stage();
popup.initModality(Modality.NONE);
popup.initStyle(StageStyle.UNDECORATED);
popup.setTitle(titre);
2020-04-20 13:46:18 +02:00
scene = new Scene(p);
2020-04-22 20:42:18 +02:00
p.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event){
xOffSet = event.getSceneX();
yOffSet = event.getSceneY();
}
});
p.setOnMouseDragged(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event){
popup.setX(event.getScreenX() - xOffSet);
popup.setY(event.getScreenY() - yOffSet);
}
});
popup.focusedProperty().addListener((obs,wasFocused,isNowFocused) -> {
if(!isNowFocused) {
popup.hide();
}
2020-04-24 10:09:30 +02:00
});
2020-04-20 13:46:18 +02:00
}
public void display() {
2020-04-22 20:42:18 +02:00
popup.setScene(scene);
popup.showAndWait();
2020-04-24 10:09:30 +02:00
2020-04-20 13:46:18 +02:00
}
}