swing jtable 줄 삭제, 여러 줄 삭제, 정렬 후 줄 삭제


질문
 
jtable 정렬 후 줄을 삭제하면 색인에 맞지 않는 문제가 발생합니다
 
//목록을 설정하면 jTable1을 정렬할 수 있습니다.setAutoCreateRowSorter(true);
 
해결책
키 코드:
//Model 인덱스로 변환하려면 이 구절이 중요합니다. 그렇지 않으면 인덱스가 대응하지 않습니다.
rowIndexes[i] = jTable1.convertRowIndexToModel(rowIndexes[i]);
//정렬, 이 구절은 매우 중요하다. 그렇지 않으면 순서가 어지러운 Arrays이다.sort(rowIndexes);
 
private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {                                          
        int[] rowIndexes = jTable1.getSelectedRows();
        
        if(rowIndexes.length == 0){
            JOptionPane.showMessageDialog(null, "        !");
            return;
        }
        
        int r = JOptionPane.showConfirmDialog(null,
                "       ?", "    ",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.QUESTION_MESSAGE);
        if (r != JOptionPane.YES_OPTION) {
            return;
        }

        for (int i = 0; i < rowIndexes.length; i++)
        {
           //   Model   ,     ,       
            rowIndexes[i] = jTable1.convertRowIndexToModel(rowIndexes[i]);
        }
        //  ,     ,       
        Arrays.sort(rowIndexes);
        
        DefaultTableModel tableModel = (DefaultTableModel) jTable1.getModel();
        //    
        for(int i=rowIndexes.length-1; i>=0; i--){
            tableModel.removeRow(rowIndexes[i]);
            // Model       ,       
            //MainFrame.resultList.remove(rowIndexes[i]);
        }

    } 

 
인터넷에서 많은 사람들이 쓴 삭제 방법은 모두 표 정렬과 관련이 없고 표 정렬과 관련된 변환 인덱스를 사용한 후에도 정렬하지 않는다.
진심으로 jtable의 조작이 너무 번거로워서 winform보다 훨씬 못해요.

좋은 웹페이지 즐겨찾기