Stage.Min/MaxWidth/Height don't scale
Kevin Rushforth
kevin.rushforth at oracle.com
Wed Nov 18 13:18:12 UTC 2015
Hi Chris,
Application developers can file bugs here:
http://bugs.java.com/
Thanks.
-- Kevin
Chris Nahr wrote:
> On Windows the minimum & maximum size properties of Stage don't scale
> to the current DPI settings, unlike all other drawing coordinates. The
> explicit size properties (setWidth/setHeight) do scale but
> setMinWidth, setMaxWidth, setMinHeight & setMaxHeight were apparently
> overlooked. Any values passed to them are interpreted as unscaled pixels.
>
> Below I've added a short sample program to demonstrate the issue.
> Minimum size should just cover the drawn rectangle plus margins, and
> maximum size should be twice as big. But running at 200% DPI the
> *maximum* size will just cover the rectangle whereas the minimum size
> will show only a fraction of the rectangle.
>
> (I'd file a bug report but my JIRA account didn't transition to the
> new bug tracking system, probably because I'm not an OpenJDK
> contributor.)
>
> -- Chris
>
> import javafx.application.Application;
> import javafx.scene.Scene;
> import javafx.scene.layout.StackPane;
> import javafx.scene.shape.Rectangle;
> import javafx.stage.Stage;
>
> public class StageSizeTest extends Application {
>
> @Override
> public void start(Stage primaryStage) {
>
> // draw scene-filling rectangle with margin
> final int margin = 10, size = 200;
> Rectangle rect = new Rectangle(margin, margin, size, size);
> StackPane root = new StackPane(rect);
> final int sceneSize = size + 2 * margin;
> Scene scene = new Scene(root, sceneSize, sceneSize);
>
> // add extra margin for non-client area
> final int stageSize = sceneSize + 3 * margin;
> primaryStage.setMinWidth(stageSize);
> primaryStage.setMinHeight(stageSize);
> primaryStage.setMaxWidth(2 * stageSize);
> primaryStage.setMaxHeight(2 * stageSize);
>
> primaryStage.setTitle("Stage Size Test");
> primaryStage.setScene(scene);
> primaryStage.show();
> }
>
> public static void main(String[] args) {
> launch(args);
> }
> }
More information about the openjfx-dev
mailing list