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