[英]javafx how to set center position for text or label?
如何在JavaFX中為Text
或Label
節點設置centerX和centerY?
AFAIK,中心位置沒有特定的屬性(或方法),但有setLayoutX, setLayoutY
方法+ relocate
,我無法理解它們是如何工作的。
您必須告訴您的父布局如何顯示子項。 不是孩子如何展示自己。
例如,如果您的按鈕位於Hbox內,請執行以下操作:
hbox.setAlignment(Pos.CENTER)
您應該閱讀使用布局以便更好地理解
如果要基於鼠標坐標將文本居中在Pane
容器中,請嘗試使用此方法
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class CenterTextWithCoordinateDemo extends Application {
@Override
public void start(Stage primaryStage){
Pane pane = new Pane();
pane.setOnMousePressed(event -> {
Circle circle = new Circle();
circle.setRadius(10);
circle.setFill(Color.BLUE);
circle.setCenterX(event.getX());
circle.setCenterY(event.getY());
pane.getChildren().add(circle);
Text text = new Text();
text.setText("This is a long text");
text.setX(event.getX());
text.setY(event.getY());
text.setX(text.getX() - text.getLayoutBounds().getWidth() / 2);
text.setY(text.getY() + text.getLayoutBounds().getHeight() / 4);
pane.getChildren().add(text);
});
Scene scene = new Scene(pane,600, 600);
primaryStage.setTitle("Center Text With Coordinate Demo");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.