2011-10-16 6 views
1

JScrollpane에서 JTable을 구현했습니다. JList에 MouseListener를 추가 했으므로 MouseListener로 잘 작동합니다.jtable의 화살표 키로 행 선택 제거

이제 내 문제는 행 선택이 키보드 화살표 키 (위쪽 화살표/아래쪽 화살표)로 변경되고 이미 MouseListener를 사용하여 구현 한 메서드를 호출하지 않는다는 것입니다. 그래서 난 그냥 키보드 화살표로 JTable 선택을 제거 싶어요.

친절히 도와주세요.

답변

8

스윙 구성 요소는 키 입력이 입력되면 액션을 호출하기 위해 Key Bindings을 사용합니다. 당신이 좋아하는 코드를 사용하여 키 바인딩을 제거 할 수 있어야 위의 튜토리얼 링크 읽기에서

:

InputMap im = table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); 
im.put(KeyStroke.getKeyStroke("DOWN", 0), "none"); 

나는 당신이 최대 키를 처리 할 수 ​​있습니다.

+0

안녕하세요 ........ 덕분에, 그 작업 ..... 위대한 – Raj

+0

위로 키 들어, 난 그냥 위의 수정 : im.put (KeyStroke.getKeyStroke ("UP"), "없음"); 및 그 작동 ..... u r brilliant ..... thnx 다시 :-) – Raj

+1

@Raj 귀하는 감사의 표시로 Camickr의 답변을 수락 할 수 있습니다. :) –

2

JTable에는 ListSelectionModel이 있습니다. getSelectionModel() 메서드로 가져올 수 있습니다. addListSelectionListener (ListSelectionListener) 메서드에 의해 ListSelectionModel에 ListSelectionListener를 추가 할 수 있습니다.