我使用以下代码显示表中的统计信息。每次更改hashmap中的数据时,我都会再次运行以下代码。虽然新添加的行将显示,但它无法滚动(如此)。所以谁知道为什么?感谢。
HashMap<String, Commodity> duMap = Light.getLightMap();
String[] column = {"Name", "Type", "Amount", "Default in price", "Default out price", "Last in price", "Last out price"};
String[][] row = new String[duMap.size()][];
int i = 0;
for (String string : duMap.keySet()) {
duLight = duMap.get(string);
row[i] = new String[]{duLight.getName(), duLight.getModel(), ""+duLight.getAmount(), ""+duLight.getDefaultIP(), ""+duLight.getDefaultOP(), ""+duLight.getLastIP(), ""+duLight.getLastOP()};
i ++;
}
JTable statistics = new JTable(row, column);
statistics.setEnabled(false);
statistics.setFont(new Font("DIALOG", 2, 20));
for (int j = 0; j < 7; j++) {
statistics.getColumnModel().getColumn(j).setPreferredWidth(120);
}
statistics.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
statistics.setRowHeight(40);
statistics.setDefaultRenderer(Object.class, dtc);
//back is a static panel
back.add(new JScrollpane(statistics), BorderLayout.CENTER);
back.revalidate();
答案 0 :(得分:0)
而不是一直尝试创建新的JTable和JScrollPane:
setDataVector(...)
方法更新现有的DefaultTableModel。setModel(...)
方法更新JTable。