我有一个简单的程序,显示红色圆圈。
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();
}
如何将我的圆放置在特定的角(例如左上角)上,并确保即使在调整程序屏幕大小时它也停留在该角上?
答案 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等于框架高度减去圆半径。