DefaultTableModel及JTable更新数据的问题

本文探讨了在使用MySQL和JAVASwing进行数据交互时,如何有效解决DefaultTableModel和JTable在更新数据库后刷新界面时的问题。通过实例展示了初始化DefaultTableModel的方法改进,确保了数据在界面展示时的正确性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做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清空。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值