0

我想将一组项目绑定到 GroovyFX 中的 TableView,但在tableView()调用后我没有更新表。

我可以在 JavaFX 中更新表,但不能在 GroovyFX 中更新。我想有一些绑定丢失。

代码是

import static groovyx.javafx.GroovyFX.start

import groovyx.javafx.beans.FXBindable;
import javafx.scene.control.TableView

class Command {

    @FXBindable String command
    @FXBindable String target
    @FXBindable String value
}

start{

TableView scriptTable
ObservableList<Command> script = []

stage(title: 'Example for Stackoverflow', visible: true) {

    scene(fill: groovyblue, width: 600, height: 250) {
        borderPane{
            center(align: CENTER){

                script.add( new Command(command: "a", value: "b", target: "c") )

                scriptTable = tableView(items: script, editable: true){
                    tableColumn(text: "Command", property: "command"){}
                    tableColumn(text: "Target", property: "target"){}
                    tableColumn(text: "Value", property: "value"){}
                }

                script.add( new Command(command: "d", value: "e", target: "f") )
            }
        }
    }
}

在这个例子中,我得到一个带有“a,b,c”的单行。 在此处输入图像描述

在创建表后如何使用数据(“d、e、f”)更新表的帮助表示赞赏。

非常感谢。

4

1 回答 1

0

我认为问题之一可能是这行代码:

ObservableList<Command> script = []

因为def someList = []是 Groovy 的def someList = new ArrayList()

相反,您可能希望使用以下代码对其进行初始化:

ObservableList<Command> script = FXCollections.observableArrayList()

这创造了实际的ObservableList

于 2016-01-12T04:25:46.353 回答