gpt4 book ai didi

java - 如何从 JTable 中删除重复行?

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:49 25 4
gpt4 key购买 nike

在本类(class)中,我尝试仅保留 JTable 中的每个值之一。数据来自数据库。不过我不需要重复的数据。

public JTable getHeute(){

DBconnect verbinden = new DBconnect();
verbinden.erstelleVerbindung();

JTable Habwesend=new JTable();
Habwesend.setBounds(10, 30, 290, 400);
Habwesend.setEnabled(false);
DefaultTableModel dm=new DefaultTableModel();

try {
ResultSet rs= verbinden.sqlStatement.executeQuery("select MA_ID from AB_Spanne where(Date() >= Start and Date() <= Ende)");
ResultSetMetaData rsmd=rs.getMetaData();
//Coding to get columns-
int cols=rsmd.getColumnCount();
String c[]=new String[cols];
for(int i=0;i<cols;i++){
c[i]=rsmd.getColumnName(i+1);
for (int k = 0; k < c.length; k++) {
dm.addColumn(c[k]);
}



}

Object row[]=new Object[cols];
while(rs.next()){
for(int i=0;i<cols;i++){
row[i]=rs.getString(i+1);
}
dm.addRow(row);
}


Habwesend.setModel(dm);
verbinden.schliesseVerbindung();


}

最佳答案

将您的查询更改为:

"SELECT DISTINCT MA_ID from AB_Spanne where(Date() >= Start and Date() <= Ende)"

你可以在java中这样做(不推荐且性能不佳):

//UNTESTED CODE
List<Object> Objectlist = new List<Object>();
// ...
Object row[]=new Object[cols];

while(rs.next()){

for(int i=0;i<cols;i++){
row[i]=rs.getString(i+1);
}

if !(Objectlist.Contains(row)){
dm.addRow(row);
}
}

//我猜为了让 contains 方法发挥作用,您可能需要创建自己的对象,在其中重写相等/比较方法。

关于java - 如何从 JTable 中删除重复行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14334640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com