编辑:为标签1&编辑解决,意外撕开X和Y值2
我正在使用JavaFX创建一个叠加层,但出于某种原因,我的两个标签丢失而一个完全正常。这很奇怪,因为它们都具有相同的y值(setLayoutY),并且只成功显示了一个标签。将标签1的y值从536更改为500时,它会显示,但会被删除。
标签1的setLayoutY(536)时:http://i.imgur.com/M5NxQoa.png 当标签2的setLayoutY(500):http://i.imgur.com/heJDopx.png
时这很奇怪,因为它在窗格和阶段大小内都很好(顺便说一下,哪一个优先)。另一方面,标签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);
}
}
答案 0 :(得分:0)
在所有标签中设置相同的PrefHeight
label1.setPrefHeight(57);
label2.setPrefHeight(57);
label3.setPrefHeight(57);