从Combobox分配JavaFX标签字体不起作用

我想通过从我构建的组合框中选择值来分配标签的字体(node)。组合框只有几个选项,所以它们都应该可以安全地在这个应用程序中使用。从Combobox分配JavaFX标签字体不起作用

一切工作正常,并从组合框中所有正确的字符串值被拉和分配到标签。但是标签中的字体不会改变,当我从标签中输出字体时,活动字体仍然是系统默认的字体。我有另一种方法只编辑fontSize,并且工作正常。所以它必须是实际的字符串值无效。但没有发生错误,并且组合框列表名称是从系统上安装的字体获得的。

用例和代码如下。我错过了什么?

1)选择字体,然后单击确定改变)

2)已分配标记(代码段)

String font = String.valueOf(combobox_font.getValue()); 

label.setFont(Font.font(font));

注:我的程序的缘故我试图分别指定字体类型和大小,但我也试着用字体大小分配值,但没有运气。

label.setFont(Font.font(font, fontSize)); ///fontSize is a double value gotten from teh textfled above 

3)Outbut标签字体(不过系统默认)

Font[name=System Regular, family=System, style=Regular, size=12.0] 

回答:

如果指定,而不是姓氏字体名称,你需要使用的Font的constuctor,因为所有静态方法预计字体家族:

@Override 

public void start(Stage primaryStage) {

ComboBox<String> fontChoice = new ComboBox<>(FXCollections.observableList(Font.getFontNames()));

Spinner<Integer> spinner = new Spinner<>(1, 40, 12);

Text text = new Text("Hello World!");

text.fontProperty().bind(Bindings.createObjectBinding(() -> new Font(fontChoice.getValue(), spinner.getValue()), spinner.valueProperty(), fontChoice.valueProperty()));

HBox hBox = new HBox(fontChoice, spinner);

StackPane.setAlignment(hBox, Pos.TOP_CENTER);

StackPane root = new StackPane(hBox, text);

Scene scene = new Scene(root, 400, 400);

primaryStage.setScene(scene);

primaryStage.show();

}

要使用静态方法,使用姓氏:

@Override 

public void start(Stage primaryStage) {

ComboBox<String> familyChoice = new ComboBox<>(FXCollections.observableList(Font.getFamilies()));

Spinner<Integer> spinner = new Spinner<>(1, 40, 12);

Text text = new Text("Hello World!");

text.fontProperty().bind(Bindings.createObjectBinding(() -> Font.font(familyChoice.getValue(), spinner.getValue()), spinner.valueProperty(), familyChoice.valueProperty()));

HBox hBox = new HBox(familyChoice, spinner);

StackPane.setAlignment(hBox, Pos.TOP_CENTER);

StackPane root = new StackPane(hBox, text);

Scene scene = new Scene(root, 400, 400);

primaryStage.setScene(scene);

primaryStage.show();

}

以上是 从Combobox分配JavaFX标签字体不起作用 的全部内容, 来源链接: utcz.com/qa/258559.html

回到顶部