2012-01-15 2 views
1

에서 행을 제거한 후 jTable 포커스와 위치를 Java jTable 클래스로 복원합니다. 사실 저는 자바 프로그래머가 아니며 Matlab에서 GUI를 디자인하기 위해 자바를 사용하고 있습니다. 내가 한 일은 다음과 같습니다.테이블 모델

  • jTable은 Matlab GUI에 내장되어 있습니다.
  • jTable에서 필터링 결과를 보여줄 수있는 RowFilter를 사용/호출했습니다.
  • 그런 다음이 필터링 된보기의 결과에서 테이블 모델의 removeRow 메서드를 사용하여 하나 이상의 선택된 행을 제거했습니다.

문제는 매번 행을 제거하면 테이블 내용이 원하는대로 새로 고쳐 지지만 스크롤 막대가 처음으로 다시 이동한다는 것입니다.

누구든지이 점프를 금지하고 jTable의 원래 뷰를 유지하는 방법을 알고 있습니까? 이 기능을 사용하면 삭제를 시작한 원래 위치를 찾기 위해 뒤로 스크롤하지 않아도됩니다.

감사합니다.

+0

tableModel이 잘못된 이벤트 (rowDeleted 대신 fi dataChanged가 발생했습니다.) – kleopatra

+0

이 확인되었습니다. 핵심 JTable 및 DefaultTableModel에서 올바르게 작동하므로 코드에 문제가 있습니다 (@trashgod : 실제로 수동 간섭이 필요함 :-) – kleopatra

+0

조언 해 주셔서 감사합니다. 그것을 확인하고 오류를 수정하는 방법을 알려주실 수 있습니까? – OISS

답변

1

테이블의 scrollRectToVisible() 메서드를 호출하십시오. 원하는 행에 대해 getCellRect()에 의해 반환 된 Rectangle을 전달하십시오.

+0

은 필요하지 않습니다. – kleopatra

+0

@kleopatra is correct; ['TableAddTest'] (http://stackoverflow.com/a/7519403/230513)도 참조하십시오. – trashgod

관련 문제