2012-10-02 3 views
0

JTable의 첫 번째 행에 포커스를 전달하고 싶습니다. 사용자가 테이블의 내용을 변경할 수 없기 때문에 editCellAt (행, 열) 메서드를 사용할 수 없습니다. changeSelection (row, column, false, false) 메서드도 제대로 작동하지 않습니다.처음에 포커스를 옮기기 스윙에서 jTable의 행

포커스를 첫 번째 행으로 전송하는 방법을 제안 해주십시오.


텍스트 필드와 표가 있습니다. 처음에는 텍스트 필드에 있습니다. Enter 키를 누르면 컨트롤이 테이블의 첫 번째 행에 있어야합니다. 아래 코드를 제공했습니다. 제발 도와주세요. 당신은 모두 당신이 모두 도달 할 수있는 별도의 메소드를 호출해야 할 경우

private void txtRawMaterial(java.awt.event.KeyEvent evt) //txtRawMaterial is textfield 
{  
    if (evt.getKeyCode()==KeyEvent.VK_ENTER) 
    { 
     if(table.getRowCount()>0) //table is jTable 
     { 
       table.requestFocus(); 
     } 
    } 
} 

답변

2

(행/열)과 선택 (그 구성 요소로서 역할 JTable로의) 초점이 두 개념은 반드시 관련이 없습니다 :

table.requestFocus(); 
table.changeSelection(0, 0, false, false); 

는 또한 의 셀에 포커스는 일반적인 의미에서 focusOwner되지 않습니다. 대신 column - 및 rowSelection 모델 모두에서 일반적으로 다른 부분보다 더 두껍고 다른 경계와 같은 시각적 단서를 가지고 있습니다.

+0

+1을 구별합니다. * UIManager 기본값 *, [here] (http://stackoverflow.com/a/3974748/230513)도 참조하십시오. – trashgod