gpt4 book ai didi

Javafx - 我无法将数据放入 TableView

转载 作者:行者123 更新时间:2023-11-29 04:46:00 25 4
gpt4 key购买 nike

我无法用我自己的数据填充 JavaFX TableView 对象。我试图修改 the code found here以满足我的程序的需要。我添加了该教程中使用的表格,它显示正确。我复制了该代码以创建第二个表,但无法让我的数据显示在第二个表中。

我相信我已经正确地修改了代码以接受来 self 的 SNMPInterface 类的数据。我尝试用静态数据填充我的表,然后用从文件中读入的数据填充。这两个过程都不​​起作用,但都将创建具有正确标题的列。

My full project can be found on GitHub .

最初,我创建了一个“SNMPInterface”类对象的 TableView 对象:

private TableView< SNMPInterface > interfaceTableView = new TableView<>();

然后我创建一个 SNMPInterface 对象的 ObservableList:

private final ObservableList< SNMPInterface > interfaceData =
FXCollections.observableArrayList(
new SNMPInterface( "99", "testlo" ),
new SNMPInterface( "98", "testeth1" ),
new SNMPInterface( "97", "testeth2" ),
new SNMPInterface( "96", "testbond0" )
);

稍后,我为“ifIndex”数据成员创建了一个列:

TableColumn< SNMPInterface, String > ifIndexCol = new TableColumn<>( "Index" );
ifIndexCol.setCellValueFactory( new PropertyValueFactory<>( "ifIndex" ) );

...以及“ifDescr”的第二列:

TableColumn ifDescrCol = new TableColumn( "Description" );
ifDescrCol.setCellValueFactory( new PropertyValueFactory<>( "ifDescr" ) );

然后我尝试将它添加到 GridPane(名为 rootNode):

interfaceTableView.setItems( interfaceData );
interfaceTableView.getColumns().setAll( ifIndexCol, ifDescrCol );
rootNode.add( interfaceTableView, 0, 7, 2, 1 );

...但这不起作用。

我有一个循环来验证方法是否可以使用数据,还有一个循环来验证数据是否已从文件中正确读入。两个容器似乎都有有效数据,但都没有进入我的表。

我的表似乎与教程表实际上是一样的,但显然我在某处出错了。有人看到我的错误在哪里吗?

最佳答案

用于输入 PropertyValueFactory 的 SNMPInterface 类上的 getter 和 setter应该标记为公开,而不是 no modifier (否则 PropertyValueFactory 中固有的反射逻辑将找不到它们)。

public static class SNMPInterface {
private final SimpleStringProperty ifIndex;
private final SimpleStringProperty ifDescr;

SNMPInterface( String ifIndex, String ifDescr ) {
this.ifIndex = new SimpleStringProperty( ifIndex );
this.ifDescr = new SimpleStringProperty( ifDescr );
}

public String getIfIndex() {
return ifIndex.get();
}

public void setIfIndex( String index ) {
ifIndex.set( index );
}

public String getIfDescr() {
return ifDescr.get();
}

public void setIfDescr( String descr ) {
ifDescr.set( descr );
}
}

关于Javafx - 我无法将数据放入 TableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37148986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com