DefaultTableModel,添加行,动态列数
DefaultTableModel, add row, dynamic number of columns
如上所述,我不知道一行中会有多少列,所以显然我 运行 遇到了 String[]
数组的问题。至少会有 2 列 - 这是给定的。
我该如何解决这个限制?
DefaultTableModel tableModel = new DefaultTableModel(0,1+queryResult.size());
Object[] row = {t.getDate(),'some data'};
tableModel.addRow(row);
view.getPriceHistoryTable().setModel(tableModel);
但是如果 queryResult.size() 大于 1 那么我想做的是:
Object[] row = {t.getDate(),'some data','more data'};
tableModel.addRow(row);
view.getPriceHistoryTable().setModel(tableModel);
等等...
您可以通过 JTable 对象访问列模型并获得有关列的所有信息
int cols = table.getColumnCount();
使用您的模型,您可以这样设置行数和列数
model.setRowCount(rows);
model.setColumnCount(cols);
因此您可以根据查询结果动态设置行数和列数
数组的大小不一定是编译时常量:
int colCount = 1 + queryResult.size();
String[] row = new String[colCount];
row[0] = t.getDate();
for(int i = 1; i < row.length; i++) {
row[i] = "some data"; // or get data from somewhere else
}
tableModel.addRow(row);
for(int i=0; i < 1+queryResult.size(); i++)
model.addColumn(i+1); // i+1 will be the header name for each column
首先执行此操作,然后您可以添加行
如上所述,我不知道一行中会有多少列,所以显然我 运行 遇到了 String[]
数组的问题。至少会有 2 列 - 这是给定的。
我该如何解决这个限制?
DefaultTableModel tableModel = new DefaultTableModel(0,1+queryResult.size());
Object[] row = {t.getDate(),'some data'};
tableModel.addRow(row);
view.getPriceHistoryTable().setModel(tableModel);
但是如果 queryResult.size() 大于 1 那么我想做的是:
Object[] row = {t.getDate(),'some data','more data'};
tableModel.addRow(row);
view.getPriceHistoryTable().setModel(tableModel);
等等...
您可以通过 JTable 对象访问列模型并获得有关列的所有信息
int cols = table.getColumnCount();
使用您的模型,您可以这样设置行数和列数
model.setRowCount(rows);
model.setColumnCount(cols);
因此您可以根据查询结果动态设置行数和列数
数组的大小不一定是编译时常量:
int colCount = 1 + queryResult.size();
String[] row = new String[colCount];
row[0] = t.getDate();
for(int i = 1; i < row.length; i++) {
row[i] = "some data"; // or get data from somewhere else
}
tableModel.addRow(row);
for(int i=0; i < 1+queryResult.size(); i++)
model.addColumn(i+1); // i+1 will be the header name for each column
首先执行此操作,然后您可以添加行