이동하고 크기를 조정하고자하는 JDialog
을 만들었습니다. 내 프로그램에서 화면에 JDialog
을 그립니다. 사용자가 클릭하면 화면 너비가 늘어나고 높이가 늘어납니다. 나는 이것을 이렇게 시도했다.JDialog에 애니메이션 적용
for(int i = 150; i <= width; i += 3) {
dialog.setSize(i, 80);
try {
Thread.sleep(0, 1);
} catch(Exception e2) {}
}
for(int i = 80; i <= 200; i++) {
dialog.setSize(width, i);
try {
Thread.sleep(1);
} catch(Exception e3) {}
}
코드를 실행하면 시간이 오래 걸리며 곧바로 JDialog가 표시됩니다. 확장되지 않습니다.
사용자가 대화 상자를 다시 클릭하면 시작 애니메이션이 취소되고 닫힙니다.
for(int i = 200; i >= 80; i--) {
newMsg.setSize(width, i);
try {
Thread.sleep(0, 1);
} catch(Exception e4) {}
}
for(int i = 0; i >= -width; i -= 3) {
newMsg.setLocation(i, 100);
try {
Thread.sleep(0, 1);
} catch(Exception e5) {}
}
제대로 작동합니다. 움직임을 볼 수 있습니다. 내가 이해하는 한,이 코드는 반대의 경우를 제외하고는 모두 동일합니다. 오프닝은 예상대로 작동하지 않지만 마감은 무엇입니까?
를 사용해보십시오 루프 대신 타이머를 스윙하십시오. 나는 이벤트가 이벤트 큐에 걸려 있고 모든 이벤트를 한꺼번에 처리하고 있다고 생각한다. – DankMemes
어떻게 할 수 있는지보고 싶습니다. 나는 Reimeus의 메시지에 대해 설명하고 ... – MikkoP
가능한 중복 [단일 스레드에 sleep() 사용] (http://stackoverflow.com/questions/14074329/using-sleep-for-a-single-thread) –