繁体   English   中英

使用列表填充jTable

[英]Populating jTable using List

我有一个使用Json Jackson从Json文件中获得的数据列表,如何从该列表中填充jTable?

[{"id":1,"name":"Bambola","description":"Opis...","contact_number":"022\/349-499","email":"","address":"Svetosavksa 23","geo_latitude":"44.96868000000000","geo_longitude":"20.28140000000000","created_at":"2013-06-24 14:15:08","updated_at":"2013-06-24 14:15:08","deleted_at":null,"publication_starts":"1991-05-24 01:00:00","publication_ends":"1991-05-24 01:00:00"},{"id":2,"name":"Master","description":"Opis...","contact_number":"022\/349-123","email":"","address":"Svetosavksa 24","geo_latitude":"44.96653000000000","geo_longitude":"20.28170000000000","created_at":"2013-06-24 14:15:08","updated_at":"2013-06-24 14:15:08","deleted_at":null,"publication_starts":"0000-00-00 00:00:00","publication_ends":"0000-00-00 00:00:00"},{"id":3,"name":"Tritel","description":"Opis...","contact_number":"022\/321-499","email":"","address":"Svetosavksa 25","geo_latitude":"44.96654000000000","geo_longitude":"20.28170000000000","created_at":"2013-06-24 14:15:08","updated_at":"2013-06-24 14:15:08","deleted_at":null,"publication_starts":"0000-00-00 00:00:00","publication_ends":"0000-00-00 00:00:00"}]

使用Json Jackson解析器,我用此数据填充了List。

List<Advertisement> advertisements = mapper.readValue(url, new TypeReference<List<Advertisement>>(){});

现在,我想填充jTable,我已经使用NetBeans GUI构建器来创建框架和表。 该表的名称是adventList_JT。 到目前为止,我尝试过的是在网站上的类似问题中找到的这段代码。

DefaultTableModel model = new DefaultTableModel();
        for (Advertisement adv : advertisements) {
            Object[] o = new Object[3];
            o[0] = adv.getName();
            o[1] = adv.getPublication_starts();
            o[2] = adv.getPublication_ends();
            model.addRow(o);
        }
        advertisementList_JT.setModel(model);

有了这个代码片段,当我启动应用程序时表格就变成了灰色,什么也没发生,通过调试器看了也没有错误。

我认为发生这种情况是因为您没有提供表头。 查看是否可行:

Object[] columnNames = {"Name", "Starts", "Ends"};
DefaultTableModel model = new DefaultTableModel(new Object[0][0], columnNames);
        for (Advertisement adv : advertisements) {
            Object[] o = new Object[3];
            o[0] = adv.getName();
            o[1] = adv.getPublication_starts();
            o[2] = adv.getPublication_ends();
            model.addRow(o);
        }
        advertisementList_JT.setModel(model);

另一种可能性是广告列表为空;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM