2010-02-18 4 views
0

특정 시간 후에 텍스트 필드를 업데이트 중입니다.특정 간격 후 텍스트 필드 업데이트

ActionListener task = new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      try { 
        tip1.setText(ad1.tip1()); 
        tip2.setText(ad1.tip2()); 
        tip3.setText(ad1.tip3()); 
       } catch (Exception e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 
      } 
    }; 

     new javax.swing.Timer(1000, task).start(); 

내 응용 프로그램의 respose 매우 느리게이 코드를 사용 :

여기 내 코드입니다.

답변

2

편집 : 이것은 올바른 해결책이 아닙니다.

EDT에 던져 넣어야합니다. EDT 이외의 스레드에서 Swing 인터페이스를 변경하지 않아도됩니다.

try { 
    SwingUtilities.invokeLater(new Runnable(){ 
     public void run() { 
      tip1.setText(ad1.tip1()); 
      tip2.setText(ad1.tip2()); 
      tip3.setText(ad1.tip3()); 
      } catch (Exception e1) { 
       e1.printStackTrace(); 
      } 
    }); 
} 

태양은이 주제에 대해 약간 큰 tutorials을 가지고 있습니다.

+0

저는 Swing 타이머를 사용하면 EDT에 넣을 것이라고 생각했습니다. 튜토리얼에 대해 – Javamann

+0

감사합니다. – nicky

+0

사실,이 대답은 정확하지 않습니다. 타이머가이 용도에 적합하며 나중에 호출 사용을 사용하지 않아도됩니다. – jjnguy

0

타이머 코드가 좋지 않습니다. 자세한 내용을 모른 채, 유일하게 가능한 원인은

update 무엇
update.addActionListener(task); 

얼마나 자주 청취자/작업 (처형 외에도 타이머를 통해 트리거) 발사 될 것이다?

+0

코드가 편집됩니다. tetfield는 1 초 후에 업데이트되어야합니다. – nicky

관련 문제