커스텀 RowSorter를 사용하여 정렬 가능한 열을 가진 JTable을 가지고 있습니다. RowSorter 클래스는 자동으로 사용자 정의 마우스 청취 코드를 추가하지 않고 정렬을 자동으로 수행하므로 테이블의 ColumnHeader에 MouseListener로 자동 추가됩니다. 이것은 완벽하게 작동합니다.더블 클릭시 JTable 자동 정렬 금지
사용자가 열 머리글에서 두 번 클릭하여 테이블 열의 크기를 조정할 수있는 코드 (this example 기준)를 추가했습니다 (Excel의 동작을 모방합니다). 문제는 사용자가 열의 크기를 조정하기 위해 머리글을 두 번 클릭하면 해당 열도 정렬된다는 것입니다. 헤더를 한 번 클릭하면 열 정렬 만하고 싶습니다.
첫 번째 방법은 Java 인터페이스 프록시를 사용하여 JTable의 기존 MouseListeners를 모두 바꾸고 이벤트를 가로 채고 단 한번의 클릭과 관련된 이벤트 만 전달하는 것이 었습니다. 그래도 잔인한 것처럼 보입니다. 더 좋은 방법이 있습니까?
+1 MouseEvent.dispatchEvent(), 아마도 consume()을 직접 사용하는 것일 수도 있습니다. – mKorbel