2010-07-31 5 views
0

AbstractButton.doClick이 디스패치 스레드에 있어야합니까? 나는 그것이 동부 서머 타임의 절전 방법을 간부 인하는 나쁜 생각doClick은 디스패치 스레드에 있어야합니까?

public void doClick(int pressTime) { 
     Dimension size = getSize(); 
     model.setArmed(true); 
     model.setPressed(true); 
     paintImmediately(new Rectangle(0,0, size.width, size.height)); 
     try { 
      Thread.currentThread().sleep(pressTime); 
     } catch(InterruptedException ie) { 
     } 
     model.setPressed(false); 
     model.setArmed(false); 
    } 

, 그래서 doClic 방법은 동부 서머 타임에 있지 않아야 생각하지만 돈 : 나는 JDK 6의 소스를 보면

본인은 이 시점에서 어떤 문서를 찾지 못했습니까?

감사합니다.

답변

1

doClick() 메서드를 호출하면 궁극적으로 ActionEvent가 생성되어 ActionListener가 호출됩니다. 모든 리스너는 EDT에서 실행해야합니다. 이 슬립 값이 버튼을 볼 수 있도록 버튼을 사용자가 클릭을 시뮬레이션하기 위해, 분 mmilliseconds하지 될 것으로 예상된다

나는 그것이 동부 서머 타임의 절전 방법을 간부 인하는 나쁜 생각

, 눌려진 상태로 칠해진 다음 정상 상태로 되돌아갑니다. 그래서 몇몇 MS에 대해 EDT를 차단하는 것은 문제가되지 않습니다.