[英]JavaFX - Only one label is showing
编辑:为标签1和2解决,意外撕开X和Y值
我正在使用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);
}
}
在所有标签中设置相同的PrefHeight
label1.setPrefHeight(57);
label2.setPrefHeight(57);
label3.setPrefHeight(57);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.