Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用TornadFX将组合框添加到Kotlin中的tableview_Java_Javafx_Kotlin_Tornadofx - Fatal编程技术网

Java 如何使用TornadFX将组合框添加到Kotlin中的tableview

Java 如何使用TornadFX将组合框添加到Kotlin中的tableview,java,javafx,kotlin,tornadofx,Java,Javafx,Kotlin,Tornadofx,我正在尝试使用TornadFX向tableview添加组合框;最接近我认为应该有用的东西是:列 更新 TableView img: 列生成器的第二个类型参数不是UI元素类型,而是值类型,因此在您的情况下,它应该是字符串。下面是一个完整的示例应用程序,展示了组合框在TableView中的使用: class Person { val nameProperty = SimpleStringProperty() var name by nameProperty val fa

我正在尝试使用TornadFX向tableview添加组合框;最接近我认为应该有用的东西是:


更新

TableView img:

列生成器的第二个类型参数不是UI元素类型,而是值类型,因此在您的情况下,它应该是字符串。下面是一个完整的示例应用程序,展示了组合框在TableView中的使用:

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" })
        }
    }
}
班级人员{
val nameProperty=SimpleStringProperty()
按名称属性的变量名称
val-FavoriteFructureProperty=SimpleStringProperty()
favoriteFruit变量按favoriteFruit属性
}
类MyView:View(){
val水果=列表(“苹果”、“香蕉”、“梨”)
覆盖val root=tableview{
isEditable=true
列(“名称”,Person::nameProperty)
列(“最喜欢的水果”,Person::favoriteFruitProperty).useComboBox(水果.可见())
//用测试数据填充。不要在家里尝试
异步项{
listOf(Person().apply{name=“John”;favoriteFruit=“Apple”},Person().apply{name=“Jane”})
}
}
}

该指南确实要求您至少了解一些JavaFX基础知识,因此如果您之前没有JavaFX知识,那么它肯定是不完整的。但是它不应该不可靠,所以请告诉我它是否有错误,或者您是否有改进建议。

列生成器的第二个类型参数不是UI元素类型,而是值类型,因此在您的情况下,它应该是字符串。下面是一个完整的示例应用程序,展示了组合框在TableView中的使用:

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" })
        }
    }
}
班级人员{
val nameProperty=SimpleStringProperty()
按名称属性的变量名称
val-FavoriteFructureProperty=SimpleStringProperty()
favoriteFruit变量按favoriteFruit属性
}
类MyView:View(){
val水果=列表(“苹果”、“香蕉”、“梨”)
覆盖val root=tableview{
isEditable=true
列(“名称”,Person::nameProperty)
列(“最喜欢的水果”,Person::favoriteFruitProperty).useComboBox(水果.可见())
//用测试数据填充。不要在家里尝试
异步项{
listOf(Person().apply{name=“John”;favoriteFruit=“Apple”},Person().apply{name=“Jane”})
}
}
}

该指南确实要求您至少了解一些JavaFX基础知识,因此如果您之前没有JavaFX知识,那么它肯定是不完整的。不过,它不应该不可靠,所以如果有错误,或者您有改进建议,请告诉我。

谢谢您的回答。理解;我目前正在这两个框架之间学习我能做的。在你写专栏的方式中,我现在收到了另一种类型的错误。我已经更新了代码以反映我的更改;我实际上使用了错误的参数。非常感谢。我的代码已经编译,但是TableView似乎已经加载了,因为它没有组合框。我添加了一个TableView的图像。我将代码更改为:
列(“最喜欢的水果”,AvailableRooms::roomTypeProperty)。使用combobox(ListoFaniesInRoom.observable())
当表格进入编辑模式时,会显示combobox,默认情况下,双击一行时会出现这种情况。感谢您的回答。理解;我目前正在这两个框架之间学习我能做的。在实现了您编写列的方式时,我现在收到另一种类型的错误。我已经更新了代码以反映我的更改;我实际上使用了错误的参数。非常感谢。我的代码已经编译,但是TableView似乎已经加载了,因为它没有组合框。我添加了一个TableView的图像。我将代码更改为:
列(“最喜欢的水果”,AvailableRooms::roomTypeProperty)。使用combobox(ListoFaniesInRoom.observable())
当表格进入编辑模式时,会显示combobox,默认情况下,双击一行时会出现这种情况。