首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java AbstractTableModel动态填充行

Java AbstractTableModel动态填充行
EN

Stack Overflow用户
提问于 2015-06-16 09:19:28
回答 2查看 164关注 0票数 0

我正在尝试使用AbstractTableModel在表中动态添加行。行被添加到一个循环中。当添加第二行时,第一行的值在表中显示为null。程序被设计为这样一种方式,即刷新行值,但仅仅为了用户的查看,我如何才能保持表中的值不被刷新为空值。

为什么表格总是从第一行开始刷新表格渲染?有没有一种方法可以只渲染下一行,而不重新打印第一行中已经打印的内容。

以下是我的代码的一些部分:

代码语言:javascript
复制
public class RunConfig extends AbstractTableModel {


    private final LinkedList<Section> daten = new LinkedList<Section>();
    private String[]        header = {"Links","% N", "% M", "% H", "% S"};

    public RunConfig() {

    }

    public void addElement(Section addValue)
    {
        daten.add(addValue);
        fireTableRowsInserted(daten.size()-1, daten.size()-1);
    }

    public int getColumnCount() {
        return header.length;
    }

    public String getColumnName(int col) {
        return header[col];
    }


    public Object getValueAt(int row, int col) {
        return ((Section)daten.get(row)); 
    }

    public int getRowCount() {
        return daten.size();
    }

    public boolean isCellEditable(int row, int col){
        return false;
    }

}
EN

回答 2

Stack Overflow用户

发布于 2015-06-16 09:46:24

我想知道应用程序是否正确地管理部分对象。请确保每个addElement都在使用节对象的不同实例,而不是在添加到表模型后重用相同的对象或将其字段设为空:

请尝试执行以下操作,以确保表获得一个从未从外部修改过的唯一对象:

代码语言:javascript
复制
public void addElement(Section addValue) {
    Section sec = new Section();
    // TODO copy fields
    daten.add(sec);
    fireTableRowsInserted(daten.size() - 1, daten.size() - 1);
}
票数 0
EN

Stack Overflow用户

发布于 2015-06-24 01:03:10

因为我不知道如何解决这个问题,所以我使用了一个简单的defaultTableModel,将数据放在一个数组中,并逐行动态地填充表。这也很简单。感谢您的帮助和评论。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30857427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档