import javafx.beans.binding.Bindings; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.stage.Stage; public class StageTrackingController { @FXML private Label stageX; public void initialize() {} public void initData(final Stage stage) { stageX.textProperty().bind( Bindings.format( "(%1$.2f, %2$.2f)", stage.xProperty(), stage.yProperty() ) ); } }
@Override public void changed(ObservableValue<? extends Number> value, Number oldX, Number newX) { sketch.frameMoved(newX.intValue(), stage.yProperty().intValue()); } });
@Override public void setupExternalMessages() { stage.xProperty().addListener(new ChangeListener<Number>() { @Override public void changed(ObservableValue<? extends Number> value, Number oldX, Number newX) { sketch.frameMoved(newX.intValue(), stage.yProperty().intValue()); } }); stage.yProperty().addListener(new ChangeListener<Number>() { @Override public void changed(ObservableValue<? extends Number> value, Number oldY, Number newY) { sketch.frameMoved(stage.xProperty().intValue(), newY.intValue()); } }); stage.setOnCloseRequest(new EventHandler<WindowEvent>() { public void handle(WindowEvent we) { sketch.exit(); } }); }
primaryStage.yProperty().addListener((obs, oldY, newY) -> monitorStage.setY(newY.doubleValue() - 100)); primaryStage.setTitle("Application");
primaryStage.yProperty().addListener(boundsListener); primaryStage.widthProperty().addListener(boundsListener); primaryStage.heightProperty().addListener(boundsListener);
stage.yProperty().addListener( new ChangeListener<Number>()
y.bind(ViewStructure.primaryStage().yProperty().add(ViewStructure.primaryStage().heightProperty().subtract(dialogStage.heightProperty()).divide(3)));
y.bind(ViewStructure.primaryStage().yProperty().add(ViewStructure.primaryStage().heightProperty().subtract(dialogStage.heightProperty()).divide(3)));
String yKey = prefix + ".dialog.y"; double y = settings.getProperty(yKey, -1.0, false); stage.yProperty().addListener((obs, oldVal, newVal) -> settings.setProperty(yKey, newVal)); if(x >= 0 && y >= 0 && !Screen.getScreensForRectangle(x, y, x+1, y+1).isEmpty()) { stage.setX(x);