Положение круга в левом углу при растяжении экрана - JavaFX - PullRequest
0 голосов
/ 07 октября 2018

У меня есть простая программа, которая показывает красный круг.

public void start(Stage stage) {      
  Circle circle = new Circle(30, 30, 30);
  circle.setFill(Color.RED);
  Pane pane = new Pane();
  pane.getChildren().add(circle);
  Scene scene = new Scene(pane);

  circle.centerXProperty().bind(Bindings.divide(scene.widthProperty(), 2));
  circle.centerYProperty().bind(Bindings.divide(scene.heightProperty(), 2));

  stage.setScene(scene);
  stage.show();
}

Как я могу расположить свой круг в определенном углу (например, в верхнем левом углу) и убедиться, что он остается там, даже если яизменить размер экрана программы?

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Используйте StackPane и StackPane.setAlignment(node, position), чтобы установить узел в верхнем левом углу.

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

/**
 *
 * @author blj0011
 */
public class JavaFXApplication279 extends Application
{

    @Override
    public void start(Stage primaryStage)
    {
        Circle circle = new Circle(30, 30, 30);
        circle.setFill(Color.RED);

        StackPane root = new StackPane(circle);
        StackPane.setAlignment(circle, Pos.TOP_LEFT);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        launch(args);
    }

}
0 голосов
/ 07 октября 2018

Для положения в левом верхнем углу центр х и центр у окружности должны быть равны радиусу окружности.(Плюс небольшое смещение, например, 1 px, чтобы показать круг без визуального вырезания самых верхних и левых частей круга.)

Для нижнего правого углового центра x равен ширине кадра минус радиус круга.и центр у равен высоте кадра минус радиус круга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...