gpt4 book ai didi

java - 在javafx中更新组合框中的文本字体

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:13:15 24 4
gpt4 key购买 nike

我有一部分代码。我想在组合框中显示操作系统上的所有字体。然后字体名称应该看起来像预览,显示每种字体的外观。这是我的代码:

List<String> families = Font.getFamilies();
fontfamilies = FXCollections.observableArrayList(families);
comboBox.setItems(fontfamilies);
comboBox.getSelectionModel().select(0);

comboBox.setCellFactory((ListView<String> listView) -> {
final ListCell<String> cell = new ListCell<String>() {
@Override
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (item != null) {
setText(item);
setFont(new Font(item, 12));
}
}
};
//cell.setPrefWidth(120);
return cell;
});

但是我得到这个错误:

Error:(59, 20) java: incompatible types: bad return type in lambda expression
javafx.scene.control.ListCell<java.lang.String> cannot be converted to javafx.scene.control.ListCell<capture#1 of ?>

谁能帮我解决这个问题?

最佳答案

您的问题与您定义成员变量comboBox 的方式有关,您使用wildcard 定义了它。它表示未知类型,而您的其余代码期望String 作为ComboBox 的类型。

所以简单地把它定义为下一个:

@FXML private ComboBox<String> comboBox;

关于java - 在javafx中更新组合框中的文本字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40613639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com