문제

현재 jtable에서 다음 방법을 사용하여 열에 자동 정렬을 얻고 있습니다.

table.setAutoCreateRowSorter(true);

이것은 현재 각 헤더를 클릭 할 수 있으며 해당 열은 문자로 무엇이든 정렬됩니다. 정수가있는 열을 정렬하려고 할 때 엉망입니다. 실제 숫자로 정렬하는 대신 한 번에 각 숫자를 정렬하는 것으로 보입니다. 예를 들어 8은 10보다 크다고 말할 것입니다. 8은 1보다 크기 때문에이 동작을 무시할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

정수가있는 열을 정렬하려고 할 때 엉망이되고 있습니다.

아마 : 아마 :

  1. 당신은 숫자를 문자열로 저장하고 있습니다
  2. 데이터를 정수 객체로 저장하고 있지만 getColumnClass() 테이블 모델이 돌아올 방법 Integer.class 그 칼럼의 경우. 적절한 비교기는 열 클래스가 올바른 경우에만 사용됩니다.

Swing Tutorial의 섹션을 참조하십시오 개념 : 렌더러 및 편집자 자세한 내용과 GetColumnClass () 메소드를 무시할 수있는 방법에 대한 예.

다른 팁

특정 비교기를 사용하여 행 분산기를 설정해야 할 것입니다.

Comparator<Integer> comparator;
TableRowSorter sorter;
table.setRowSorter(sorter);
sorter.setModel(table.getModel());
sorter.setComparator(comparator);

여기 비교기 및 가능한 문제에 대해 더 찾을 수 있습니다. 그러나 @camickr은 열 클래스가 올바르게 설정되면 정수가 일반적으로 필요하지 않아야하는 것도 옳습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top