拉伸屏幕尺寸时,将最左角的圆定位-JavaFX

时间:2018-10-07 15:55:17

标签: java javafx

我有一个简单的程序,显示红色圆圈。

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 :(得分:1)

使用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);
    }

}

答案 1 :(得分:0)

对于在左上角的位置,圆的中心x和y应当等于圆的半径。 (例如,加上小的偏移量,例如1 px,可以显示圆形,而无需视觉切割圆形的顶部和左侧。)

对于右下角中心x等于框架宽度减去圆半径。而中心y等于框架高度减去圆半径。