当前位置: 首页 > 面试题库 >

JavaFX-我无法将数据放入TableView

帅锦
2023-03-14
问题内容

我无法用自己的数据填充JavaFX
TableView对象。我试图修改此处找到的代码以适合我的程序的需求。我添加了该教程中使用的表,它可以正确显示。我复制了该代码以创建第二个表,但是无法使我的数据显示在第二个表中。

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

我的完整项目可以在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
应该标记为public,而不是没有修饰符(否则,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 );
    }
}


 类似资料:
  • 所以我想在一个控制器中创建两个存储。当我输入时,我确实返回到索引页面,但我提交的数据不存在。然后我看到了我的本地主机,但是我输入的数据也不在那里。当我输入时,没有错误消息。所以我不知道我的错误在哪里。 这是我的看法 createincome.blade.php 这是我的控制器 财务控制人。php 这是我的路线 web.php

  • 首先,我是Java的初学者。我正在尝试使用JavaFX在Java中创建一个Monopoly游戏。我在网格窗格中画了板。 我要问你们的问题是,如何将网格放在边界窗格的中心。网格窗格占据整个屏幕。我希望它在边框窗格的中心,并将其他空间用于菜单和其他窗格。 网格 边界板

  • 事情是这样的 我不知道发生了什么,如果有人能帮忙,我会非常感激的。THX!

  • 问题内容: 我正在尝试做一些非常简单的事情。我想在表中特定行的列中放置一个图标。如果是文件夹,则显示文件夹图标。如果是文件,则显示文件图标。 有人知道如何在JavaFX 2中执行此操作吗? 我已经尝试了很多事情,这似乎应该很简单,或者至少是某个地方的例子。 问题答案: 好吧,我有一个巨大的假时刻。原来我的图片网址路径错误。 我确实找到了一个网站,该网站提供了为表添加元素的绝佳示例。这帮助我了解了一

  • 我是laravel的新手,当我使用单击函数提交表单时出现了一些问题。ajax jquery controller不会将数据保存到数据库,每次响应时都会使用整个html文件。请帮帮我。 关于标题的一些信息 请求URL:http://akshay.laravel/patient1?fname=asdknkl 状态代码:200 OK 远程地址:[::1]:80 推荐人策略:降级时无推荐人 缓存控制:无缓

  • 我设法将数据插入身份验证,但无法插入数据库: 代码: 错误: E/AndroidRuntime:致命异常:主进程:com。实例budgetingapp,PID:11507 java。lang.RuntimeException:在类androidx上找到了名称getText的冲突获取程序。appcompat。小装置。AppCompativeText位于com。谷歌。火基。消防商店。util。Cust