シーンに既に付いているが、不可視に設定されているノードの境界(特に高さと幅)を決める方法はありますか?JavaFX:目に見えない間にノードの境界を特定しますか?
私はその幅が100pxにを超えた場合にのみ、画面上にラベルを表示したい...しかし、それは常に0ではありません:
@Override
public void start(Stage primaryStage) {
Group root = new Group();
Scene scene = new Scene(root, 500, 500, Color.BLACK);
primaryStage.setScene(scene);
primaryStage.show();
Label n = new Label();
n.setVisible(false);
n.setStyle("-fx-background-color: red;");
root.getChildren()
.addAll(n);
n.textProperty()
.addListener((v, ov, nv) -> {
System.out.println(n.getBoundsInParent());
n.setVisible(n.getWidth() > 100);
});
n.setText("TEST11111111111111111111111");
}
SYSOUTの結果:(もn.getWidth()には優れています)
このBoundingBox [ミンクス:0.0、minYの:0.0、minZ:0.0、幅:0.0、高さ:0.0、深さ:0.0、MAXX:0.0、MAXY:0.0、maxZ:0.0]
トリックはありますか?
ありがとうございます!
'Text'ノードを使用してください。 'Text'ノードがあなたが望む長さに達すると、' Text'ノードのテキストでラベルを設定し、ラベルを表示します。 https://stackoverflow.com/questions/19361211/measure-the-length-of-text-in-javafx – Sedrick