2010-07-09 3 views
1

배경의 색을 변경하고 설정된 시간이 지나면 JFrame에서 자체를 제거하는 단추를 만들려고하지만 색을 변경하는 대신 대기 기간 동안 누르고있는 단추를 유지하려고합니다. .단추를 제거하기 전에 색을 바꿈

public void actionPerformed(ActionEvent e) { 
    setBackground(Color.red); 
    try{ 
     Thread.sleep(10000); 
    } 
    catch (InterruptedException iE) { 

    } 
    frame.remove(this); 
} 

내가 잘못하고있는 것을 누가 볼 수 있습니까?

답변

2

기본 UI 스레드에서 잠자기가 발생하므로 버튼이 계속 눌러져 있습니다. 잠자기를 원한다면 새 스레드를 만들어서 잠자기 상태로 만들어야하고 그 스레드 내에서 버튼을 제거하기위한 프레임을 얻을 수 있습니다.

new Thread() { 
    public void run() { 
     try { 
      Thread.sleep(10000); 
      // Now do what is needed to remove the button. 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 

    }; 
}.start(); 
+0

고마워요. – Kracobsen

관련 문제