![](/img/trans.png)
[英]Java Swing - Deleting rows from table with AbstractTableModel()
[英]Java AbstractTableModel Dynamically populating rows
我正在嘗試使用AbstractTableModel在表中動態添加行。 這些行正在循環添加。 當添加第二行時,第一行的值在表中顯示為null。 該程序的設計方式是刷新行值,但僅出於用戶查看的目的,我如何在不刷新為空值的情況下將值直接保留在表中。
為什么表格總是從第一行刷新表格渲染? 有沒有一種方法可以只渲染下一行而不重印已經在第一行中打印的內容。
這是我的代碼的某些部分:
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;
}
}
我想知道應用程序是否正確管理Section對象。 請確保每個addElement都與Section對象的不同實例一起使用,並且在添加到表模型后不要重用同一對象或將其字段清空:
請嘗試以下操作,以確保表獲得的唯一對象永遠不會從外部進行修改:
public void addElement(Section addValue) {
Section sec = new Section();
// TODO copy fields
daten.add(sec);
fireTableRowsInserted(daten.size() - 1, daten.size() - 1);
}
由於我不知道如何解決該問題,因此我改用了一個簡單的defaultTableModel並將數據放入數組中,並逐行動態填充表。 也很容易。 感謝您的幫助和評論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.