如何防止JTable中的数据重复? for循环确定数据是否包含类似的ID。 是的,它确定并显示一个有效的JOptionPane。 但我的问题是它在表2上的setValue之后扫描重复。 我希望我的程序能够防止在表2上的setValue之前重复数据。
public void dProductList(){
table.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
if(e.getClickCount() == 1) {
JTable tbl = (JTable)e.getSource();
int rrow = tbl.getSelectedRow();
if(rrow>=0) {
int dcol = 0;
int rcol = 0;
((DefaultTableModel)table2.getModel()).addRow(new Object[] {0,0,0,0});
while(rcol<table2.getColumnCount()-1) {
table2.setValueAt(table.getValueAt(rrow,rcol),drow,dcol);
totalAmount = totalAmount + (int) table2.getValueAt(drow,3);
rcol++;
dcol++;
if(rcol==table2.getColumnCount()-1) {
drow++;
}
label.setText(String.valueOf(totalAmount));
}
for(int i=0; i<table2.getRowCount()-1;i++){
if(table2.getValueAt(i,0).equals(table2.getValueAt(table2.getRowCount()-1,0))){
JOptionPane.showMessageDialog(null,"item already listed");
}
}
}
}
}
});
}
答案 0 :(得分:0)
在for loop
之前使用table2.setValueAt
检查,只有在没有重复时才添加。
您还可以将数据保存到Set(例如HashSet)并在添加到JTable之前检查它。