2013-03-29 2 views
0

Java 스윙과 NetBeans를 사용하여 데스크톱 응용 프로그램을 개발 중입니다. 사용자 정의 테이블 모델이있는 jtable을 사용하여 데이터를 렌더링합니다. 테이블의 최소 행 수를 표시하려면 표시 할 실제 행 수가 최소값보다 작 으면 테이블에 최소 수를 구성하는 추가 더미 행이 표시되어야합니다. 아래swing jtable은 기본적으로 여러 행을 표시합니다.

public class MyTableModel extends AbstractTableModel { 

    private List<List<Object>> dataList = new ArrayList<>(); 
    private String[] header = { "ID","SUBJECT","LETTTER FROM","LETTER DATE","DATE RECEIED", 
            "REMARKS","DATE DISPATCHED","DESTINATION OFFICE"}; 


    public List<List<Object>> getDataList() { 
     return dataList; 
    } 

    public void setDataList(List<List<Object>> dataList) {  
     this.dataList = dataList; 
     fireTableDataChanged();  
     fireTableStructureChanged();   
    } 

    public void setHeader(String[] header) { 
     this.header = header; 
    } 

    public String[] getHeader() { 
     return header; 
    } 

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

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

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

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

    @Override 
    public Class<?> getColumnClass(int column) 
     { 
      for (int row = 0; row < getRowCount(); row++) 
      { 
       Object o = getValueAt(row, column); 

       if (o != null) 
       { 
        return o.getClass(); 
       }    
      } 
      return Object.class; 
     } 
    } 

제안 사용할 수있는 테이블 모델에 대한 코드 nippets 있습니다. 먼저

+0

UNR을 조정해야합니다

@Override public Object getValueAt(int row, int col) { Object value = null; if (row < dataList.size()) { value = dataList.get(row).get(col); } return value; } 

elated : API 문서가 fireXX 메소드의 차이점을 분명히 설명합니다. - – kleopatra

답변

5

, 당신은 반환해야 중 하나 minRowCount 또는 이제까지 큰 행의 수 ...

@Override 
public int getRowCount() { 
    return Math.max(dataList.size(), minRowCount); 
} 

그런 다음 당신이 값에 대한 요청이 범위 내에 있는지 확인해야 데이터 목록은 편집 할 수 테이블에 대해하려는 경우, 당신은 또한 isCellEditablesetValueAt 방법을

+0

예상대로 작동하는 솔루션에 대해서만 필요합니다. – CodeAngel

관련 문제