2009-04-20 2 views
6

종료 할 때 응용 프로그램의 상태를 저장하고 시작시 복원하려고합니다. 국가의 일부는 모든 JFrames의 상대적 Z- 순서입니다.윈도우의 Z- 순서를 쿼리하거나 설정하기위한 스윙 해킹이 있습니까?

스윙은 불행하게도 (동일한 VM의 다른 창과 비교해도) Window의 Z 순서를 배우거나 설정할 수있는 방법을 제공하지 않습니다.

모든 창에서 toFront()를 연속적으로 호출하여 Z 순서를 설정합니다. 그러나 Z- 질의를 질의하는 것은 아직 해결되지 않고있다. (예를 들어, 윈도우 그룹에서 Windows의 "계단식"액션을 사용하는 경우와 같이 포커스 리스너를 추가하는 것은 항상 작동하지 않습니다.)

아이디어가 있습니까?

+0

중복 된 http://stackoverflow.com/questions/624885/how-to-get-the-z-order-of-jinternalframes-in-a-jdesktoppane? – dfa

+1

아니에요, 난이 스레드의 미래의 시청자를 위해 플래그를 JInternalFrames – sereda

답변

5

세분화되지 않았습니다.

당신이 말했듯이, 당신은 toFront()와 toBack()을 호출 할 수 있습니다. 그리고 당신은 "맨 위에"머물러있게 요청할 수 있습니다.

또 다른 옵션은 내부 프레임이있는 프레임을 사용하고 setComponentZOrder()를 사용하는 것입니다 (내부 구성 요소에서만 작동합니다 - 컨테이너에서 호출해야 함).

저는 Swing에서 우선 순위가 없었던 이유 중 하나는 Z 순서 지원이 플랫폼에 따라 크게 다르다는 것입니다. (하지만 어떡하지?)

-1

Container 클래스의 setComponentZOrder (Component c, int layer) 및 getComponentZOrder (Component c)를 사용할 수 있습니다. 여기에 JDC 기술 팁이 있습니다. http://72.5.124.55/developer/JDCTechTips/2005/tt0118.html

+2

그냥 얘기하지 않을거야 :이 메서드는 JFrame의 내용에 적용됩니다, JFrame 자체가 아닌 시스템의 다른 윈도우의 컨텍스트에서. –

관련 문제