2013-05-11 8 views
2

MDI 스윙 GUI를 만들 때 JFrame의 JDesktopPane에 추가되는 여러 개의 JInternalFrames가 있습니다. initComponents 메소드 다음에 setVisible (false)을 추가하여이 내부 프레임을 보이지 않게합니다 (GUI 빌더가이 메소드에서이 프레임을 자동으로 표시하도록 설정 함).스윙 MDI에서 JInternalFrames 관리

런타임에 사용자는 프레임의 현재 상태에 따라 setVisible (true) 및 setVisible (false)을 호출하는 수신기를 호출하여 JInternalFrames를 열고 닫도록 선택할 수 있습니다. 나는이 디자인을 사용하여 내부 프레임의 이전 위치와 상태를 그대로 유지하는 방법을 좋아합니다. 그러나 어떤 단점도 아직 보지 못했다고해도 무언가 잘못되었다고합니다.

내 질문은 :이 가난한 디자인입니까?

+1

JInternalFrames의 위치를 ​​기억하는 것이 더 좋은 디자인이라고 생각합니다. 한 가지 단점은 사용자가 JDesktopPane의 크기를 조정하면 JInternalFrame이 완전히 보이지 않을 수도 (즉, JDesktopPane의 표시된 경계 너머에 있음), JInternalFrame을 볼 때이를 확인할 수 있습니다. 또는 Windows 3.1처럼 손쉬운 방법을 사용하여 "타일"및 "계단식"메뉴 기능을 제공 할 수 있습니다. – VGR

답변

1

Multiple Document Interface (MDI)의 맥락에서이 접근법은 상당히 합리적입니다. 또한 JInternalFrame 방법 setSelected()을 사용하여 특정 프레임을 강조 표시 할 수 있습니다. 탐색을 쉽게하기 위해 Action에서이 방법과 다른 방법을 사용할 수 있습니다 (here 참조).