2014-12-26 5 views
0

Как предотвратить дублирование данных в JTable? Цикл for определяет, содержит ли данные аналогичный идентификатор. Да, он определяет и показывает JOptionPane, который работает. Но моя проблема заключается в том, что она сканирует дубликата после того как я SetValue на таблице 2. Я хочу, чтобы моя программа для предотвращения дублирования данных до SetValue на таблице 2.JTable duplicate entry

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

Использование for loop проверки непосредственно перед table2.setValueAt и добавить только если нет дубликатов.

Вы также можете сохранить свои данные в Set (например, HashSet) и проверить их перед добавлением в JTable.

Смежные вопросы