누군가가 JTable의 셀 내용을 편집하고 Enter 키를 누르면 컨텐츠가 수정되고 테이블 선택이 다음 행으로 이동합니다.편집 된 셀에 JTable을 유지하는 방법
은 셀 에디션 이후 JTable이 다음 행으로 이동하는 것을 금지 할 수 있습니까?
이유는 내 프로그램이 ListSelectionListener를 사용하여 셀 선택에서 다른 위젯을 동기화하고 현재 셀을 편집 한 후 다음 행을 선택하지 않기를 원하기 때문입니다.
누군가가 JTable의 셀 내용을 편집하고 Enter 키를 누르면 컨텐츠가 수정되고 테이블 선택이 다음 행으로 이동합니다.편집 된 셀에 JTable을 유지하는 방법
은 셀 에디션 이후 JTable이 다음 행으로 이동하는 것을 금지 할 수 있습니까?
이유는 내 프로그램이 ListSelectionListener를 사용하여 셀 선택에서 다른 위젯을 동기화하고 현재 셀을 편집 한 후 다음 행을 선택하지 않기를 원하기 때문입니다.
의 기본 바인딩은 selectNextRowCell
인 Action
입니다. 입력 된지도 WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
의 항목을 재정의하려면 How to Use Key Bindings: How to Make and Remove Key Bindings에서 제안한대로 doNothing()
Action
을 제공해야합니다.
정확히 정확히 어떻게해야할지 모르겠지만, ActionMap을 살펴볼 것입니다. 'Enter'키에 매핑 된 작업을 수정하거나 바꿀 수 있어야합니다.
행운을 빈다.
위대한 제안! 전체 작업은 table.getCellEditor()에 대한 호출을 추가하는 것입니다. stopCellEditing(); actionPerformed (...) 메소드에서. 이 호출이 없으면 사용자가 enter 키를 누르면 셀이 편집 모드로 유지됩니다. – Martin
좋은 지적; [편집기를 사용하여 사용자 입력 텍스트 검증하기] (http://download.oracle.com/javase/tutorial/uiswing/components/table.html#validtext)도 참조하십시오. – trashgod