如上所述,我不知道连续多少列,所以很明显我遇到了String[]
数组的问题。将至少有两列 - 这是给定的。
我如何解决这个限制?
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);
依旧......
答案 0 :(得分:1)
数组的大小不必是编译时常量:
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);
答案 1 :(得分:0)
您可以通过JTable对象访问列模型,并获取有关列的所有信息
int cols = table.getColumnCount();
使用您的模型,您可以通过这种方式设置行数和列数
model.setRowCount(rows);
model.setColumnCount(cols);
因此,您可以根据查询结果动态设置行数和列数
答案 2 :(得分:0)
for(int i=0; i < 1+queryResult.size(); i++)
model.addColumn(i+1); // i+1 will be the header name for each column
首先进行此操作,然后可以添加行