JFrame을 사용하여 간단한 프로그램을 만들 때 setVisible 메서드가 true 인 순간부터 프레임과 관련하여 프로그램이 종료되지 않습니다. 누군가 내가 흐름을 설명 할 수 있습니까? 감사합니다Java JFrame 및 프로그램 흐름
답변
myJFrame.setVisible(true)
으로 전화하면이 스레드와 모든 비 데몬 스레드가 종료 될 때까지 프로그램이 종료되지 않도록 비 데몬 스윙 이벤트 스레드가 만들어집니다. 당신이 JFrame의 닫을 때 종료 할 수있는 프로그램을 원하는 경우 JFrame의가 열려있을 때, 나는이 프로그램이 보이지 않는 경우에도 JFrame의를 업데이트하는 것 같은 일을 할 수 있다는 것을 알고
myJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
를 호출합니다 다시 표시되는지 확인하고 화면 업데이트가 필요한지 확인하십시오. JFrame을 닫을 때 프로그램을 닫으려면 다음을 사용할 수 있습니다. JFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
가시성을 검사하는 스레드를 업데이트하지 않고 JFrame이 보이지 않을 때 프로그램을 중지합니다.
* "그냥 프로그램을 멈 춥니 다."*이 경우 다른 모든 실행중인 스레드와 함께 VM을 종료한다는 의미입니다. 그렇다면 그렇습니다. –
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
이 누락 되었습니까?
여기에서 frame
은 프레임 이름과 동일합니다.
setDefaultCloseOperation(int)
에 대한 문서에서.
다음과 같은 선택 사항 중 하나를 지정해야합니다
DO_NOTHING_ON_CLOSE
(WindowConstants
에 정의) : 아무것도하지 마십시오 프로그램이WindowListener
오브젝트의windowClosing
메소드에서 조작을 처리하도록 요구하십시오.HIDE_ON_CLOSE
(..) : 등록 된WindowListener
개체를 호출 한 후 프레임을 자동으로 숨 깁니다.DISPOSE_ON_CLOSE
(..) : 등록 된WindowListener
개체를 호출 한 후 프레임을 자동으로 숨기고 처분합니다.EXIT_ON_CLOSE
(..) : 시스템 종료 방법을 사용하여 응용 프로그램을 종료하십시오. 이 기능은 응용 프로그램에서만 사용하십시오.
일반적으로 마지막보다 좋기 때문에 제 3 번째 라이트를 선택하십시오. 그 이유는 두 가지입니다.
- this example과 같이 여러 프레임 인스턴스를 열고 처분 할 수 있습니다.
- JVM이 마지막 프레임을 닫을 때 종료하지 않는 유일한 이유는 다른 비 데몬 스레드가 실행 중이기 때문입니다. 이것은 차례로, 그들이 제대로 종료되어야한다는 신호입니다. 이 문맥에서 '
System.exit(n)
으로 가상 시스템을 죽이는'은 '제대로'구성되지 않습니다.
- 1. Java 스레드 관리 및 응용 프로그램 흐름
- 2. Java, swing, JFrame 및 JPanel
- 3. java JFrame setSize
- 4. Java JFrame 메서드 팩()
- 5. Java : MouseListener, KeyListener 및 PaintComponent의 JFrame 문제
- 6. JFrame 및 클래스 상호 작용이있는 Java
- 7. Java 투명 JFrame, JVLC 및 java.awt.Canvas
- 8. Java 스캐너 문제 (JFrame)
- 9. Java JFrame 그림
- 10. 페이지에 JFrame 인쇄 Java
- 11. java-jframe-drawline
- 12. Java 데스크톱 애플리케이션의 JFrame
- 13. 하스켈, 순차 프로그램 흐름?
- 14. 프로그램 흐름 확인
- 15. 안드로이드 프로그램 흐름 도움말
- 16. java 및 javafx 통합 프로그램
- 17. JFrame 내 기본 응용 프로그램 열기
- 18. Java JFrame 업데이트가 작동하지 않습니다.
- 19. 스크롤 문제 (Java-JFrame-JScrollBar)
- 20. Java Open URL JFrame 내부
- 21. Java - 다른 JFrame 같은 창에서
- 22. Java make JFrame "stay put"
- 23. Lotus Designer 소프트웨어 및 명령 및 Lotus Script - 프로그램 흐름
- 24. JFrame 테마 및 외관
- 25. JFrame 및 JPanel 문제
- 26. asp.net MVC3 응용 프로그램 흐름
- 27. YUI3 IO 프로그램 흐름 질문
- 28. 흐름 기반 라우팅 및 개방형 흐름
- 29. JFrame, JPanel 및 awt 문제
- 30. 데스크톱 Flickrj Java 인증 흐름
코드 샘플을 제공 할 수 있습니까? –
[daemon threads] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.8)가 있습니까? – trashgod
@trashgod 좋은 질문입니다. –