2011-03-08 2 views
2

현재 데이터베이스 테이블을 표시하고 편집 할 수있는 jTable이 있습니다. 이제 튜플 추가를 정렬하려고합니다.하단에 downarrow에 jTable에 행 추가

나는 하단에 downarrow에 행을 자동으로 추가하려고 노력 중이다. 따라서 테이블 아래쪽에있는 내 아래쪽 화살표를 클릭하면 아래에 새 행이 표시됩니다. 나는 그것을하는 방법을 알아낼 수 없다.

감사 제임스

답변

2

작업 처리가 javax.swing.plaf.basic.BasicTableUI에서 일어나는
스테인을. 귀하의 경우에는 SCROLL_DOWN_CHANGE_SELECTION에 대한 새 작업을 등록해야 할 수 있습니다. 작업에서 현재 선택 항목 == 테이블의 마지막 행인지 확인하십시오.

그래도 작동하지 않으면 어떤 작업이 실제로 실행되는지 보려면 javax.swing.plaf.basic.BasicTableUI.Actions.actionPerformed(ActionEvent)에 중단 점을 설정하십시오.

1

당신은 모든 KeyListener를 작성하고 테이블에이를 추가해야합니다 :

public void keyReleased(KeyEvent e) { 
    int keyCode = e.getKeyCode(); 
    if (keyCode == KeyEvent.VK_DOWN) 
     // check if selected table row = last row and if so: add new row to table model 
} 

greetz, JTable

+0

아래쪽 화살표를 누를 때마다 행이 추가됩니다. 최소한 마지막 행이 선택되었는지 확인해야합니다. – jzd

+0

올바른데,이 작업은 table.getSelectedRow() == table.getRowCount() -1을 사용하여 수행 할 수 있습니다. 그건 그렇고, 나는 내 게시물을 편집했습니다, 당신은 i.o와 같은 경우에 keyReleased를 사용해야합니다. keyPressed. –

+0

KeyListener를 사용하면 안됩니다. Swing은 이러한 유형의 기능을 위해 Key Bindings를 사용하도록 설계되었습니다. – camickr

2

JTable에는 아래쪽 화살표 키에 대한 기본 동작이 있습니다. 이 동작을 변경하려면 사용자 지정 동작을 만들어야합니다. 기본 코드를 활용하기 위해 Wrapping Actions 개념을 사용하면이 작업을 쉽게 수행 할 수 있습니다.

Table Tabbing에서 동작 배치에 대한 작동 예제를 볼 수도 있습니다. 액션에 대한 코드는 훨씬 간단 할 것이며 다음과 같이 될 것입니다 :

if (last row is selected) 
    add a new row to the table 

invoke the default down arrow action