JTable重复条目

时间:2014-12-26 11:41:48

标签: java swing jtable tablemodel

如何防止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");
                        }       
                    }


                        }


                }
        }
    });
}

1 个答案:

答案 0 :(得分:0)

for loop之前使用table2.setValueAt检查,只有在没有重复时才添加。

您还可以将数据保存到Set(例如HashSet)并在添加到JTable之前检查它。