我正在尝试使用tornadofx将一个组合框添加到tableview;最接近我认为应该工作的是:column<AvailableRooms, ComboBox<String>>("Pets Allowed", combobox<String>(values = listOf<String>("3","5")))
。
我已经阅读了文档,但似乎有很多是半编写的,并且不可靠。我是JavaFx的新手,我正在学习。我学习了Kotlin因为我认为使用他们的JavaFx版本(TornadoFx)会更容易理解。
非常感谢任何指导。
答案 0 :(得分:3)
列构建器的第二个类型参数不是UI元素类型,而是值类型,因此在您的情况下它应该是String。这是一个完整的示例应用程序,展示了在TableView中使用ComboBox:
class Person {
val nameProperty = SimpleStringProperty()
var name by nameProperty
val favoriteFruitProperty = SimpleStringProperty()
var favoriteFruit by favoriteFruitProperty
}
class MyView : View() {
val fruits = listOf("Apple", "Banana", "Pear")
override val root = tableview<Person> {
isEditable = true
column("Name", Person::nameProperty)
column<Person, String?>("Favorite fruit", Person::favoriteFruitProperty).useComboBox(fruits.observable())
// Populate with test data. Don't try this at home
asyncItems {
listOf(Person().apply { name = "John"; favoriteFruit = "Apple" }, Person().apply { name = "Jane" })
}
}
}
该指南确实要求您至少了解一些JavaFX基础知识,因此如果您之前没有JavaFX知识,那么它肯定是不完整的。但它不应该是不可靠的,所以如果有错误,或者你有改进建议,请告诉我。