2011-11-01 3 views
5

누군가가 JTable의 셀 내용을 편집하고 Enter 키를 누르면 컨텐츠가 수정되고 테이블 선택이 다음 행으로 이동합니다.편집 된 셀에 JTable을 유지하는 방법

은 셀 에디션 이후 JTable이 다음 행으로 이동하는 것을 금지 할 수 있습니까?

이유는 내 프로그램이 ListSelectionListener를 사용하여 셀 선택에서 다른 위젯을 동기화하고 현재 셀을 편집 한 후 다음 행을 선택하지 않기를 원하기 때문입니다.

답변

7

의 기본 바인딩selectNextRowCellAction입니다. 입력 된지도 WHEN_ANCESTOR_OF_FOCUSED_COMPONENT의 항목을 재정의하려면 How to Use Key Bindings: How to Make and Remove Key Bindings에서 제안한대로 doNothing()Action을 제공해야합니다.

+0

위대한 제안! 전체 작업은 table.getCellEditor()에 대한 호출을 추가하는 것입니다. stopCellEditing(); actionPerformed (...) 메소드에서. 이 호출이 없으면 사용자가 enter 키를 누르면 셀이 편집 모드로 유지됩니다. – Martin

+0

좋은 지적; [편집기를 사용하여 사용자 입력 텍스트 검증하기] (http://download.oracle.com/javase/tutorial/uiswing/components/table.html#validtext)도 참조하십시오. – trashgod

1

정확히 정확히 어떻게해야할지 모르겠지만, ActionMap을 살펴볼 것입니다. 'Enter'키에 매핑 된 작업을 수정하거나 바꿀 수 있어야합니다.

행운을 빈다.

관련 문제