相关疑难解决方法(0)

当javaFX的控制器不足以显示内容时,它会在结尾显示"..."吗?

我的问题是我可以抓住显示"......"的事件吗?

※我的意思是javaFX有一个API来判断内容的结尾是否被替换为"..."?

事实上,我的问题的原因是,现在我们的测试人员希望我们在一个控制器(如Label)上设置TIP,如果它只是不足以显示.如果内容足以在控制器中显示,那么我们不需要添加提示.

controller javafx

2
推荐指数
1
解决办法
1009
查看次数

如果溢出则调整 JavaFX 标签的大小

我在 TitledPane 的 GridPane 中有一个标签。如果超出范围,我希望它逐步缩小 0.05em,这样三个点(“长标签...”)就不会显示 -> “长标签”小。

Label 的 isOverrun() 方法会很棒,但 JavaFX 不提供该方法,而且生活也不是一场愿望音乐会。
所以到目前为止我的解决方法:

    Bounds tpBounds = tPane.getBoundsInLocal();
    Bounds lblBounds = label.getBoundsInLocal();
    Double fontSize = 1.0;

    while (tpBounds.getWidth() < lblBounds.getWidth() && fontSize > 0.5) {
        fontSize = fontSize-0.05;
        label.setStyle("-fx-font-size: "+fontSize+"em;");

        System.out.println(fontSize+" "+tpBounds.getWidth()+" "+lblBounds.getWidth());
    }
Run Code Online (Sandbox Code Playgroud)

问题:在 while 循环期间,bounds.getWidth() 始终显示原始宽度。新字体大小的“新”宽度刷新速度不够快,无法被 while 条件捕获,因此字体大小越来越小。
有什么解决方案吗?

编辑
我更常问:缩小标签本身,直到它适合而不被截断,真的那么难吗?

label resize javafx ellipsis overrun

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

javafx ×2

controller ×1

ellipsis ×1

label ×1

overrun ×1

resize ×1