내가 할 노력하고있어 재미있는 JFrame
마우스가 창을 떠날 때 그래서, 그것은 어떤 임의의 색상 (사용자의 관심을 얻기 위해)에 패널 Background
색상을 변경 :변경 구성 요소의 배경 색상
wnd.addMouseListener(new MouseAdapter(){
@Override
public synchronized void mouseExited(MouseEvent e){
cond = true;
while(cond){
try{
wnd.getContentPane().setBackground(Color.getHSBColor((cont+=0.05), 1, 1));
wnd.setTitle("Num: "+cont);
wnd.getContentPane().repaint(); //With or without it doesn't work either
wait(100);
}
catch(InterruptedException ex){ Thread.currentThread().interrupt(); }
}
}
});
문제는 Background
색깔이 변하지 않는다는 것입니다 ... 그것은 창 제목에 cont 값을 표시하지만 색상은 변하지 않습니다. 주기를 제거하고 패널 안팎으로 마우스를 움직이면 바뀝니다 ...하지만 마우스가 창을 떠날 때 마우스가 다시 돌아올 때까지 색상을 자동으로 변경합니다. 어떤 종류의 간질 (?)
나는 왜주기를하고 wait()
으로 지연 시키면 작동하지 않는지 모르겠다.
당신은에서 방지, 이벤트 파견 스레드를 차단하고 대한 Concurrency in Swing 및 How to use Swing Timers를 살펴 보자 UI를 업데이트 할 수 없었다. – MadProgrammer
'wait()'에 대한 문서를 읽었습니까? 그것은 아마도 당신이 전혀 사용하고 싶지 않을 것입니다. –