Java Swing JDialog
상자 (또는 다른 Swing 객체 유형)를 생성하는 것이 가능하여 안녕하십니까? 어떤 이벤트가 발생하면 지연 후 자동으로 대화 상자를 닫습니다. 없이 사용자가 대화 상자를 닫아야합니까?Java Swing JDialog 상자에서 타이머를 밀리 초 후에 닫을 수 있습니까?
10
A
답변
7
예 - 물론 가능합니다. 가까운 일정을 잡으려고 했습니까?
JFrame f = new JFrame();
final JDialog dialog = new JDialog(f, "Test", true);
//Must schedule the close before the dialog becomes visible
ScheduledExecutorService s = Executors.newSingleThreadScheduledExecutor();
s.schedule(new Runnable() {
public void run() {
dialog.setVisible(false); //should be invoked on the EDT
dialog.dispose();
}
}, 20, TimeUnit.SECONDS);
dialog.setVisible(true); // if modal, application will pause here
System.out.println("Dialog closed");
위 프로그램 20 초 후 대화 상자를 닫습니다 당신이 텍스트 를 볼 수 있습니다 콘솔
3
나는 스윙 타이머를 사용하는 것에 인쇄 "대화 상자가 닫힙니다." Timer가 실행되면 코드는 Event Dispatch Thread에서 자동으로 실행되며 GUI에 대한 모든 업데이트는 EDT에서 수행되어야합니다.
How to Use Timers의 스윙 튜토리얼의 섹션을 읽어보십시오.
14
이 솔루션은 oxbow_lakes '를 기반으로하지만이 유형의 것을위한 javax.swing.Timer를 사용합니다. 항상 이벤트 발송 스레드에서 해당 코드를 실행합니다. 이것은 미묘하지만 심한 버그를 피하기 위해 중요합니다.
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Test {
public static void main(String[] args) {
JFrame f = new JFrame();
final JDialog dialog = new JDialog(f, "Test", true);
Timer timer = new Timer(2000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
dialog.dispose();
}
});
timer.setRepeats(false);
timer.start();
dialog.setVisible(true); // if modal, application will pause here
System.out.println("Dialog closed");
}
}
관련 문제
- 1. (밀리 초)
- 2. Swing JDialog 상자가 나타납니다?
- 3. 밀리 초
- 4. 자바에서 밀리 초 타이밍
- 5. Java : 밀리 초 타임 스탬프 문자열
- 6. 10 진수 밀리 초 단위의 밀리 초 변환
- 7. : 초 : 밀리 목표-C
- 8. 밀리 초 단위의 NetStream.seek
- 9. Android Chronometer로 밀리 초 표시 (밀리 초 단위로 표시)
- 10. 현재 표시된 Java Swing JDialog 상자에 대한 참조를 얻으려면 어떻게해야합니까?
- 11. mp3 길이 (밀리 초)
- 12. Excel에서 밀리 초 표시
- 13. 몇 밀리 초 후에 호버링 이벤트를 발생시키는 방법은 무엇입니까?
- 14. 밀리 초 타이밍 C++
- 15. 프로그래밍 방식으로 현재 표시된 Java Swing JDialog 상자 닫기
- 16. 타이머를 사용하지 않고 정의 된 초 후에 함수 호출
- 17. Swing JDialog/JTextPane 및 HTML 링크
- 18. SAS informat datetime 밀리 초
- 19. 파일이 Xul로 작성된 시간을 몇 밀리 초 후에 확인할 수 있습니까?
- 20. 밀리 초 해상도의 jodatime.Duration 객체를 생성 할 수 있습니까?
- 21. C를 사용하여 현재 시간을 밀리 초 단위로 가져올 수 있습니까?
- 22. 최대 동시 연결 (밀리 초)
- 23. 파이썬 시간 (밀리 초) 계산
- 24. T-SQL의 반올림 밀리 초
- 25. 타이머를 사용할 수 있습니까?
- 26. 타이머가 간격보다 10 밀리 초 더 걸립니다.
- 27. Java Swing 용 CSS를 사용할 수 있습니까?
- 28. Java Swing App에서 JMS를 사용할 수 있습니까?
- 29. java swing form hang
- 30. MediaPlayerViewController를 닫은 후에 VIewController를 닫을 수 없습니다.
이벤트 발송 스레드에서 dialog.setVisisble (false)을 호출해야합니다. 그렇지 않으면 코드 비헤이비어를 예측할 수 없습니다. –
이것은 사실입니다. 혼동을 이유로이 내용을 생략했습니다. –