2013-11-28 4 views
0

CSV 파일을 읽고 작업 할 때 시간을 절약하기 위해 다른 형식으로 변환하도록 설정하려고하지만 JTable에로드 할 때 행에 길이가 예상 된 열보다 작습니다. 행 길이가 < 인 경우 빈 셀을 만드는 방법이 있습니까?가변 길이 열이있는 JTable

private class CSVTableModel extends AbstractTableModel{ 

    private ArrayList<String[]> list; 
    private String[] columns; 

    public CSVTableModel() { 
     this.list = p.getData(); 
     this.columns = p.getHeaders(); 
    } 

    @Override 
    public String getColumnName(int col) { 
     return columns[col]; 
    } 

    @Override 
    public int getRowCount() { 
     return list.size(); 
    } 

    @Override 
    public int getColumnCount() { 
     return columns.length; 
    } 

    @Override 
    public Object getValueAt(int row, int col) { 
     return list.get(row)[col]; 
    } 

    @Override 
    public void setValueAt(Object value, int row, int col) { 
     list.get(row)[col] = (String) value; 
     this.fireTableCellUpdated(row, col); 
    } 
    } 

그래서 당신이 해 getValueAt로 볼 수있다 (INT 행, INT의 COL) 메소드 COL은 문자열 [] 길이를 초과하는 경우이 오류가 발생합니다. 여기

테이블 모델입니다.

+0

''행 길이가''''''''''''- 빈 셀을 만드는 방법이 있나요? - 네, 직접 코드를 작성하십시오. 이 경우 일부 null 값을 추가하십시오. –

답변

0

게시 후 문자 그대로 해결되었습니다. 고무 오리 디버깅.

@Override 
    public Object getValueAt(int row, int col) { 
     if (col < list.get(row).length) { 
      return list.get(row)[col]; 
     } else { 
      return ""; 
     } 
    } 

은 이제 상태가 양호합니다. 전에 봤어야 했어.