您的位置:首页 > 其它

DefaultTableModel及JTable更新数据的问题

2014-12-27 21:11 417 查看
最近做MySQL和JAVA Swing,在处理将数据从MySQL取出,然后显示到界面中遇到对于DefaultTableModel和JTable刷新的问题,主要出现在更新完数据库后,再次将数据从数据库取出,更新到界面上。以下是具体问题的描述:

刚开始使用的以下方法初始化DefaultTableModel,结果导致在最后更新到JTable的时候header会插入2次。
<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif;">DefaultTableModel</span><span style="font-family: Arial, Helvetica, sans-serif;"> dtm = new DefaultTableModel();</span>



<span style="font-family: Arial, Helvetica, sans-serif;">for (int i = 0; i < header.length; i++) {</span>
<span style="white-space:pre">	</span>dtm.addColumn(header[i]);
}

String [] row = new String[header.length];
for(int i = 0; i < arrTable.size(); i++){
row = arrTable.get(i);
dtm.addRow(row);
}
后改用
String[][] element = new String[arrTable.size()][header.length];
for(int i = 0; i < arrTable.size(); i++){
String [] line = new String[header.length];
line = arrTable.get(i);
for(int j = 0; j < header.length; j++){
element[i][j] = line[j];
}
}
dtm = new DefaultTableModel(element, header);
后问题就解决了。

ps:再生成新的DefaultTableModel,添加到JTable中时,可用
dtm.getDataVector().removeAllElements();
将原先的DefaultTableModel清空。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: