2012-12-27 95 views
4

2 개의 간단한 데이터베이스 쿼리 JTable (클라이언트 및 서버)이 있습니다.Java 스윙 - 타이머를 사용하여 jTable 새로 고침

클라이언트는보기 레코드, 인쇄, PDF 저장 등의 모든 기능을 가지고 있습니다. 서버는 30 초의 타이머로 데이터베이스 레코드를 테이블에 자동 새로 고칩니다. (아직 구현되지 않았습니다.)

제 문제는 다음 코드를 사용하여 테이블에 데이터베이스 레코드를 표시 할 수 있다는 것입니다.

PreparedStatement pst = conn.prepareStatement("SQL"); 
ResultSet rs = pst.ExecuteQuery(); 
jTable1.setModel(DbUtils.resultSetToTableModel(rs)); 

그러나 위의 코드가있는 테이블을 자동 새로 고침을 구현하고 싶습니다.

예를 들어 public void Update_Records()이라는 코드에 코드를 삽입했습니다. 30 초마다 테이블에 레코드를 표시하는 메소드를 호출하기 위해 타이머를 사용하려면 어떻게해야합니까?

답변

10

당신은 할 수 :

Timer timer = new Timer(0, new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     updateRecords(); 
    } 
}); 

timer.setDelay(30000); // delay for 30 seconds 
timer.start(); 

제외 : 자바 명명 규칙은 소문자로 시작하는 방법이 있고 밑줄은 일반적으로 그렇게 사용되지 않는 Update_RecordsupdateRecords된다.

+2

'java.util.Timer'가 아니라'javax.swing.Timer'인지 확인하십시오. – mre

+0

자바 명명 규칙을 배우고 고수하십시오. kleopatra

+0

좋은 지적 @kleopatra, 업데이트. – Reimeus