페이징 구현을 위해 사용자 정의 AbstractTableModel
의 JTable을 실현했습니다. 페이지 당 5 항목을 표시하고 싶지만 문제가 있습니다. 표시 할 N 항목이있는 경우 (N을 5의 배수로 사용) 모든 항목이 정상이지만, 예를 들어 표시 할 요소가 14면, 나는 예외를 얻는다. 문제는 각 셀 값을 가져 오는 메소드가 바운드 상태가된다는 것입니다. 특히 문제가 사실다중 페이지 JTable : 행보다 적은 항목을 표시 할 수 없음
public Object getValueAt(int row, int col) {
int realRow = row + (pageOffset * pageSize);
return data[realRow].getValueAt(col);
}
방법으로, 우리는 (0 ~ 4) 5 행 (14) 요소를 가지고 있지만, 분명히 우리가 마지막 요소를 취득 할 때, 우리가 할 : realRow = 4 + (2*5)
분명히 내가 가진 행 14에 요소가 없습니다. 어떻게이 문제를 해결할 수 있습니까? 내 프로그램에서 14 번째 파일에 도달하면 가치를 얻지 못하게 할 수 있습니까? 가능한가?
에 swith를 생각 : 당신의 코드에서 , pageOffset 및 pageSize 란 무엇입니까? 그것들은 표준 tableModel 필드의 어떤 종류도 아니므로 그것이 무엇인지 알고 있으면 우리가 당신의 문제를 이해하는 데 도움이 될 것입니다. – Colby
pageOffset은 페이지 번호입니다 (0 ~ 4 항목의 경우 pageOffset = 0, 5 ~ 9 항목의 경우 1, 10-14의 항목의 경우 2) pageSize는 페이지 당 요소 수입니다 (이 경우 5입니다) – Michele