我正在尝试使用 TornadoFX 创建一些带有 FontAwesomeFX 图标的 JavaFX 按钮。这是代码
data class ButtonInfo(val texto: String, val icon: GlyphIcon<*>)
val list = listOf(
ButtonInfo("Cadastro", FontAwesomeIconView(FontAwesomeIcon.ADDRESS_BOOK)),
ButtonInfo("Corrida", MaterialDesignIconView(MaterialDesignIcon.RUN)),
ButtonInfo("Classificacao", FontAwesomeIconView(FontAwesomeIcon.LIST)))
list.forEach {
it.icon.size = "3em"
val bt = Button(it.texto, it.icon)
bt.contentDisplay = ContentDisplay.TOP
bt.minWidth = 200.0
root += bt
}
在编译中我得到这个错误:
Type parameter bound for T in var <T : Enum<T!>!> GlyphIcon<T>.size: String! where T : GlyphIcons!
不满意:推断类型 CapturedTypeConstructor(*) 不是 GlyphIcons 的子类型!
GlyphIcon 是具有以下声明的 Java 抽象类:
public abstract class GlyphIcon<T extends Enum<T> & GlyphIcons> extends Text
我不知道如何扭转这个错误。如果我声明:
data class ButtonInfo(val texto: String, val icon: Text)
我没有收到上述错误,但我错过了 '.size' 属性。如何声明我的类“ButtonInfo”以便此代码有效?