(+1). , , , , .
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
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)
{
return false;
}
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"
};
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);
-, . , . , . .
, .