gpt4 book ai didi

JavaFX - 仅显示一个标签

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:20 29 4
gpt4 key购买 nike

编辑:已解决,标签 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/

29 4 0