JavaFX - 仅显示一个标签

标签 java javafx position label missing-data

编辑:已解决,标签 1 和 2 的 X 和 Y 值意外翻转

我正在使用 JavaFX 创建覆盖层,但由于某种原因,我的两个标签丢失了,而一个标签则完全正常。这很奇怪,因为它们都有相同的 y 值 (setLayoutY),并且只有一个标签成功显示。当将标签 1 的 y 值从 536 更改为 500 时,它会显示,但会被剪切掉。

当标签1的setLayoutY(536)时:/image/QJeey.png 当标签2的setLayoutY(500)时:/image/AYMNb.png

这很奇怪,因为它完全在 Pane 和阶段大小之内(顺便说一下,哪一个优先)。另一方面,标签 2 具有相同的 y 值 536 并且会显示,但其余标签不会显示。

我真的希望这不是一个简单的错误,因为我没有看到我做错了什么。为什么会发生这种情况以及如何解决它?谢谢!

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import javafx.scene.paint.Color;

public class Overlay extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        Pane root = new Pane();
        root.setPrefSize(765,596);

        Label label1 = new Label("why does");
        label1.setLayoutX(97);
        label1.setLayoutY(536);
        label1.setPrefWidth(57);
        label1.setPrefHeight(184);
        label1.setTextFill(Color.BLACK);

        Label label2 = new Label("this happen");
        label2.setLayoutX(481);
        label2.setLayoutY(536);
        label2.setPrefWidth(184);
        label2.setPrefHeight(57);
        label2.setTextFill(Color.BLACK);

        Label label3 = new Label("-1");
        label3.setLayoutX(289);
        label3.setLayoutY(536);
        label3.setPrefWidth(57);
        label3.setPrefHeight(184);
        label3.setTextFill(Color.BLACK);


        root.getChildren().addAll(label1, label2, label3);

        Scene scene = new Scene(root, 765, 596, Color.TRANSPARENT);
        scene.setFill(Color.TRANSPARENT);
        primaryStage.setScene(scene);
        primaryStage.initStyle(StageStyle.TRANSPARENT);
        primaryStage.setAlwaysOnTop(true);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}

最佳答案

在所有标签中设置相同的 PrefHeight

label1.setPrefHeight(57);
label2.setPrefHeight(57);
label3.setPrefHeight(57);

关于JavaFX - 仅显示一个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43361757/

相关文章:

java - 如何在不使用 math.round 或 %3f 等方法的情况下截断数字? AND 仅使用 if 语句,不能使用 indexOf

WindowsXP 上的 JavaFX 错误

html - 是否添加位置 : absolute to a block element make it behave like an inline?

html - 无法移动#element1,这是为什么?

java - `Iterator` 是否可以直接或间接使用与 `Iterable` 无关的内容?

java - Spring-boot 应用程序不会在 docker 内启动时启动

java - 无法在AppCompatActivity中实现

java - 如何将imageview绑定(bind)到数组索引mvvm javafx

javaFX-什么是 getBoundsInLocal() 、getBoundsInParent() 方法?

html - 位置固定在页面顶部的中心标题元素