1
간단한 신청을하고있어, 하나의 문제가 있습니다.버튼의 아이콘을 즉시 변경하고 싶습니다
버튼의 아이콘을 코드에서 immediatly 바꾸고 싶지만 메소드가 끝난 후에 작동합니다.
여기 내 코드입니다. 내가 버튼을 클릭
public void actionPerformed(ActionEvent e) {
..
*some code*
..
Buttons[Id].setIcon(images.get(Id));
Thread.currentThread().sleep(2000);
..
*Some code*
..
}
는,이 ActionListener
방법 actionPerformed
를 호출합니다.
Buttons[Id].setIcon(images.get(Id));
는 아이콘을 변경해야합니다,하지만 나는 그것을 immediatly 작동 할 수있는 방법
Thread.currentThread().sleep(2000);
후 변경?
일부 발송자 또는 무엇?
감사
에서 자세한 내용을 참조하십시오? – ObedMarsh
어쩌면 repaint() before sleep()? – Valen
EDT (Event Dispatch Thread)를 차단하지 마십시오. GUI가 발생하면 '고정'됩니다. 'Thread.sleep (n)'을 호출하는 대신에 태스크를 반복하기 위해 Swing Timer를 구현하거나 장시간 실행되는 태스크를 위해 SwingWorker를 구현하십시오. 자세한 내용은 [스윙의 동시성을 (http://docs.oracle.com/javase/tutorial/uiswing/concurrency/)를 참조하십시오. –