我读了这个关于如何实现这一点的老答案。但是,由于它涉及使用impl_processCSS(boolean)
,这是一种现在已被弃用的方法,我认为我们需要更新答案。
我尝试过把标签放在一个HBox里面,然后得到它的大小,或者得到HBox的大小,但是没有任何运气。而且我也试过用. label.getBoundsInLocal()。getWidth()。
SSCCE:导入javafx.scene.control。标签导入javafx.scene.layout。HBox;导入javafx.application。应用导入javafx.scene.scene;
public class SSCCE extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
HBox root = new HBox();
Label label = new Label("foo");
System.out.println(label.getWidth());
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}
}
由于是JavaFX8,所以您要查找的方法是applyCss()
。
正如爪哇多克所说:
将样式应用于此节点及其子节点(如果有)。此方法通常不需要直接调用,但可以与Parent.layout()结合使用,以在下一个脉冲之前调整节点的大小,或者如果场景不在舞台中。
因此,您需要将节点放在容器中,而这个节点已经在场景中,并且还需要调用layout()
。
@Override
public void start(Stage primaryStage) {
Group root = new Group();
Label label = new Label("foo bla bla");
root.getChildren().add(label);
Scene scene = new Scene(root);
root.applyCss();
root.layout();
System.out.println(label.getWidth());
primaryStage.setScene(scene);
primaryStage.show();
}
输出:17.818359375
注意,我已将HBox
更改为Group
a组将在布局传递期间将其托管的可调整大小的子级“自动调整大小”为其首选大小,以确保区域和控件在其状态更改时正确调整大小
如果使用< code>HBox
,还需要设置场景的尺寸:
@Override
public void start(Stage primaryStage) {
HBox root = new HBox();
Label label = new Label("foo");
root.getChildren().add(label);
Scene scene = new Scene(root,100,20);
root.applyCss();
root.layout();
System.out.println(label.getWidth());
primaryStage.setScene(scene);
primaryStage.show();
}
现在输出为:18.0
iframe标签怎么弄? 接口的路径后面拼接参数 这个接口的url是iframe的src 这个怎么弄 接口的路径后面拼接参数 这个接口的url是iframe的src这个怎么弄?
这几天在学dart和flutter,真的发现dart和js一模一样,知道google为了取代js才有开发出了dart这个语言,但有一个问题有点不明白,google为什么要再去弄一个本来就有的语言?为了取代js弄出来dart,为了取代java弄出来golang,他们为什么要这样呢? 上面的问题有点想不明白,有懂的吗?
渲染出来的标签 怎么添加@click 我在红框里直接添加点击事件报错
某些配置单元派生工具(如Hadoop)需要一个表名,用于SQL查询以获取当前时间: 如果任何表格都可以,可以从“show tables”中获得一个。但这需要另一个查询,这是我试图避免的。 是否有通用/系统表名可用于此操作?或者在没有已知表名的情况下查询时间的另一种方法? (我发现需要FROM子句的配置单元实现是Cloudera、Hadoop和Horton。如果使用FROM子句,Presto和Ath
忘记 密码 amh amh-7.0 admin change_amh_password new_pass 提示下面的这个,怎么重新创建amh_uesr
我有一个显示所有数值变量的历史图。我想为它们中的每一个添加x和y标签。这是可能的,还是我必须把它们都分解成微小的图形?