2010-04-17 4 views
13

메소드를 호출 한 Jtable이 table1.setAutoCreateRowSorter(true);입니다. 이렇게 잘 작동합니다. 하지만 JFrame 클래스에는 버튼을 누를 때 해고되는 메토가 있습니다. 이 코드를 사용하여 선택된 행 인덱스를 가져옵니다. int selectedRows[] = this.table1.getSelectedRows();. 선택한 간격에 해당하는 첫 번째 행에 대한 편집 창을 표시합니다.Java : 정렬 할 때 선택된 행의 인덱스가 변경되지 않습니다.

문제는 열의 머리글을 클릭하지 않으면 (전혀 정렬하지 않음) 내 방법이 완벽하게 작동한다는 것입니다. 그러나 행을 정렬 할 때 행의 인덱스가 전혀 변경되지 않은 것 같습니다. 따라서 정렬을하기 전에 처음에는 이전 행의 편집 창을 얻게됩니다.

JDK 6을 사용하고 있습니다. 팁을 줄 수 있습니까?

답변

17

기본 모델은 순서를 변경하지 않습니다. 보기 만 변경됩니다. 자세한 내용은 Sun's tutorial에서 확인할 수 있습니다. JTable.convertRowIndexToView() 및 JTable.convertRowIndexToModel()을 사용해야합니다.

+0

이제 'table1.getModel(). getValueAt (table1.convertRowIndexToView (selectedRows [i]), 0);를 사용하여 올바른 값을 찾을 수 있습니다. – adrian7

5

모델 (기본 데이터) 색인 및보기 색인을 변환하려면 convertRowIndexToView(int)convertRowIndexToModel(int)을 사용해야합니다.

관련 문제