JavaFX会自动调整按钮的字体大小以适应。

5

我正在使用Java 8编程一个JavaFX UI,其中我在构建时计算按钮的大小。

问题是,按钮的文本(通常只是一个单独的字母)有时太大而无法适应按钮,然后按钮就会保持空白。

我该如何设置JavaFX Button的字体大小,以使文本不会太高而无法显示?


只是一点提示:如果你正在使用Java 8,那么你也在为JavaFX 8编程... - randers
我们需要你的JavaFX代码。我只能假设你正在使用自己计算的绝对大小,如果是这样,你应该开始使用动态布局。 - randers
@RAnders00 我为按钮分配了一个静态大小(例如 button.setMinSize(70, 70))。字体大小是使用 CSS 文件定义的,例如对于该按钮 -fx-font-size: 20pt。这很有效,但现在我需要添加其他大小的按钮并自动调整字体。 - Byte Commander
1个回答

2

我找到了一个解决方案。它可能不是很完美,我也不知道 0.45 是从哪里来的(只是试出来的),但对我来说似乎有效:

int buttonSize = 70; 
Button button = new Button("A");
button.setMinSize(buttonSize, buttonSize);
button.setPrefSize(buttonSize, buttonSize);
button.setMaxSize(buttonSize, buttonSize);

button.setStyle(String.format("-fx-font-size: %dpx;", (int)(0.45 * buttonSize)));

最后一行计算字体高度并以px为单位设置为此按钮的样式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接