Все ответы, представленные здесь, отличные (+1).По моему мнению, вам лучше всего будет создать свою собственную модель, которую позже вы сможете легко использовать, зная, как она работает.
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
/**
*
* @author Konrad Borowiecki
*/
public class ObjectDataTableModel extends AbstractTableModel
{
private static final long serialVersionUID = 1L;
private List<String> columnNames = new ArrayList<String>();
private List<List<Object>> data = new ArrayList<List<Object>>();
public ObjectDataTableModel()
{
}
public void setColumnNames(List<String> cNames)
{
this.columnNames = cNames;
}
public void setData(List<List<Object>> dbData)
{
this.data = dbData;
}
public List<List<Object>> getData()
{
return data;
}
@Override
public void setValueAt(Object value, int row, int col)
{
List<Object> allRow = this.data.get(row);
allRow.set(col, value);
}
@Override
public boolean isCellEditable(int row, int col)
{
// if(col == 3){ //set column with id=3 to be not editable
// return false;
// }
return false;//true;
}
public boolean isDataNull()
{
if(this.data == null)
return true;
return false;
}
@Override
public int getColumnCount()
{
return columnNames.size();
}
@Override
public String getColumnName(int col)
{
return columnNames.get(col);
}
@Override
public int getRowCount()
{
return data.size();
}
@Override
public Object getValueAt(int row, int col)
{
if(data.get(row).isEmpty())
return null;
return data.get(row).get(col);
}
}
И здесь у вас есть очень простой пример использования.
ObjectDataTableModel tm = new ObjectDataTableModel();
String[] columnNames = new String[]
{
"1", "2", "3"
};//, "4", "5", "6", "7"};
tm.setColumnNames(Arrays.asList(columnNames));
int rNo = 30;
List<List<Object>> data = new ArrayList<List<Object>>(rNo);
int cNo = columnNames.length;
for(int i = 0; i < rNo; i++)
{
List<Object> r = new ArrayList<Object>(cNo);
for(int j = 0; j < cNo; j++)
r.add("i=" + i + ", j=" + j);
data.add(r);
}
tm.setData(data);
Я рекомендую вам всегда иметь такую модель где-нибудь, например, в пакете утилит, доступным и готовым к использованию.Вы увидите, как часто такую простую модель вы найдете полезной.Этот идеально подходит для отображения данных любого типа.
Всего наилучшего, Боро.