簡體   English   中英

javafx如何設置文本或標簽的中心位置?

[英]javafx how to set center position for text or label?

如何在JavaFX中為TextLabel節點設置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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM