【问题标题】:Center text in GridPane在 GridPane 中居中文本
【发布时间】:2016-02-20 07:55:41
【问题描述】:

我是 Java 的初学者,最近才开始研究 GUI 和 JavaFX。目前我被困在试图在 GridPane 中居中文本,需要一些帮助,并解释我做错了什么。

这是我的代码:

GridPane grid = new GridPane();
grid.setMinSize(100, 100);

Text text = new Text("Hello World!");
text.setTextAlignment(TextAlignment.CENTER);
grid.add(text, 0, 1);
grid.setStyle("-fx-background-color: #D8BFD8;");

这不起作用(文本不居中),所以我认为我做错了什么。但我不明白我做错了什么?

【问题讨论】:

    标签: java javafx


    【解决方案1】:

    我会使用标签而不是文本,这样你就可以设置水平对齐方式:

    Label label = new Label("Hello World!");
    gridpane.add(label, 0, 1);
    GridPane.setHalignment(label, HPos.CENTER);
    

    【讨论】:

    • 我也不能让它工作?我还收到 eclipse 警告说“setHalignment 应该以静态方式使用”。这是为什么? :)
    • @JohanGudmundsson:因为您使用了gridpane.setHalignment(label, HPos.CENTER) 而不是GridPane.setHalignment(label, HPos.CENTER),或者出于某种原因将您的GridPane 变量命名为GridPane
    • 啊!我懂了!好的,所以现在我至少没有收到警告信息。但是文字还是不居中? "GridPane.setHalignment(label, HPos.CENTER);"
    • 这将使标签在网格窗格中的指定单元格中居中。 (顺便说一句,Text 也一样,你不需要Label。)如果它没有出现居中,可能是因为网格窗格在任何包含它的容器中都没有居中。 (也有可能标签正在填充单元格,因此它有额外的空间,并且文本不在标签中居中。)由于您没有发布完整的示例,因此很难真正知道...另见@ 987654321@
    猜你喜欢
    • 2017-02-11
    • 2019-01-08
    • 1970-01-01
    • 2017-03-30
    • 2017-03-21
    • 2014-11-09
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多