2016-01-15 74 views
1

我正在Java 8上编写一个JavFX UI,我在其中创建了在构建时计算大小的按钮。JavaFX自动调整Button的字体大小以适应

问题是,按钮的文本(通常只是一个字母在我的情况下)有时太大,不适合按钮,然后按钮只是保持空白。

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

+0

请注意:如果您使用的是Java 8,那么您也正在为JavaFX 8编程...... – RAnders00

+0

我们需要您的JavaFX代码。我只能假设你正在使用自己计算的绝对大小,在这种情况下,你应该开始使用动态布局。 – RAnders00

+0

@ RAnders00我给该按钮分配了一个静态大小(例如'button.setMinSize(70,70)'。字体大小是用一个CSS文件定义的,例如该按钮的'-fx-font-size:20pt'。工作,但现在我需要添加其他大小的按钮,并自动调整字体。 –

回答

1

我找到了解决方案。它可能不是很漂亮,我不知道从哪儿来的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单位的字体高度,并将其设置作为此按钮的样式。

相关问题