调整按钮内的文本大小

时间:2015-10-22 09:19:16

标签: css netbeans javafx scenebuilder

我正在尝试在窗口更改大小时调整按钮文本的大小,但我不知道该怎么做。我正在使用NetBeans,JavaFX和Scene Builder。 看图像: 按钮变大,但字体大小保持不变。 from here to here

3 个答案:

答案 0 :(得分:0)

您可以使用setFont方法。 例如

button.setFont(Font.font(40));

更改文字样式

button.setFont(Font.font("Calibri",FontWeight.BOLD,20));

答案 1 :(得分:0)

您可以更改scaleX属性和scaleY属性。

假设您正在使用outerPane调整大小。

final double origHeight  = outerPane.getPrefHeight();
final double origWidth = outerPane.getPrefWidth();
button.scaleXProperty().bind(outerPane.widthProperty().divide(origWidth));
button.scaleYProperty().bind(outerPane.heightProperty().divide(origHeight));

您可以根据设置应用程序的方式将代码粘贴到不同的位置。

我通过将其粘贴到FXMLDocumentController进行测试,替换已经存在的空initialze():

@FXML
private Button button;

@FXML
private AnchorPane outerPane;

@Override
public void initialize(URL url, ResourceBundle rb) {
    final double origHeight = outerPane.getPrefHeight();
    final double origWidth = outerPane.getPrefWidth();
    button.scaleXProperty().bind(outerPane.widthProperty().divide(origWidth));
    button.scaleYProperty().bind(outerPane.heightProperty().divide(origHeight));
}

保存并编译,然后重新打开SceneBuilder,并在右侧的“代码”选项卡中设置fx:id,将窗格调整为outerPane,将按钮设置为button

答案 2 :(得分:0)

您应该将值绑定到字体大小并使用styleProperty()应用它,如下所示:

DoubleProperty fontSize22 = new SimpleDoubleProperty(22);
fontSize22.bind(homeButton.widthProperty().add(homeButton.heightProperty()).divide(10));
homeButton.styleProperty().bind(Bindings.concat("-fx-font-size: ", fontSize22.asString(), "px;"));