Javafx-我无法将数据获取到TableView中

Javafx-我无法将数据获取到TableView中,java,javafx,tableview,Java,Javafx,Tableview,我无法用自己的数据填充JavaFX TableView对象。我已尝试修改以适应我的程序的需要。 我添加了该教程中使用的表,并且它显示正确。我复制了该代码以创建第二个表,但无法在第二个表中显示数据 我相信我已经正确地修改了代码,以接受来自SNMPInterface类的数据。我尝试用静态数据填充表,然后用从文件中读取的数据填充表。这两个进程都不起作用,但它们都将创建具有正确标题的列 最初,我创建了一个“SNMPInterface”类对象的TableView对象: private TableView

我无法用自己的数据填充JavaFX TableView对象。我已尝试修改以适应我的程序的需要。 我添加了该教程中使用的表,并且它显示正确。我复制了该代码以创建第二个表,但无法在第二个表中显示数据

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

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

private TableView< SNMPInterface > interfaceTableView = new TableView<>();
……但这是行不通的

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


我的表似乎与教程表基本相同,但显然我在某个地方出错了。有人看到我的错误在哪里了吗?

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


你试过没有菱形构造器的代码吗?是的。它会导致“未检查的调用”或“未检查的分配”,具体取决于我移除的钻石。我发现没有钻石组合起作用。
SNMPInterface
是否有公共方法
ifIndexProperty()
ifDescrProperty()
?没有,大卫。我只创建了getter和setter以及toString()的重写。然而,本教程没有类似的方法,它对我有效。就是这样!非常感谢你。
private final ObservableList< SNMPInterface > interfaceData =
        FXCollections.observableArrayList(
            new SNMPInterface( "99", "testlo" ),
            new SNMPInterface( "98", "testeth1" ),
            new SNMPInterface( "97", "testeth2" ),
            new SNMPInterface( "96", "testbond0" )
        );
TableColumn< SNMPInterface, String > ifIndexCol = new TableColumn<>( "Index" );
ifIndexCol.setCellValueFactory( new PropertyValueFactory<>( "ifIndex" ) );
TableColumn ifDescrCol = new TableColumn( "Description" );
ifDescrCol.setCellValueFactory( new PropertyValueFactory<>( "ifDescr" ) );
interfaceTableView.setItems( interfaceData );
interfaceTableView.getColumns().setAll( ifIndexCol, ifDescrCol );
rootNode.add( interfaceTableView, 0, 7, 2, 1 );
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 );
    }
}