我有一部分代码。我想在组合框中显示我在操作系统上的所有字体。然后,字体名称应该看起来像预览,显示每种字体的外观。这是我的代码:
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 ?>
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:2)
您的问题与您定义成员变量comboBox
的方式有关,您使用代表未知类型的wildcard来定义它,而其余代码期望String
ComboBox
1}}为@FXML private ComboBox<String> comboBox;
的类型。
所以简单地将其定义为下一个:
<img src="<?php echo base_url('assests/images/logo.png'); ?>" alt="" />