2012-05-28 2 views
3

Android에서 내 클라이언트를위한 큰 응용 프로그램을 만들었습니다. 새로운 프로젝트는 Java 용 PC 용 동일한 앱을 빌드하는 것입니다. 그래서 저는 스윙을 사용하여 개발하기 시작했습니다. Android에서 제작할 때 콘텐츠보기가있는 활동이있는 수업을 사용하며 활동간에 전환 할 수 있습니다. 자바에서 나는 JFrame을 확장하고 그들 사이를 전환하고자하는 여러 클래스를 빌드해야합니다. 올바른 방법은 무엇입니까?자바 스윙에서 화면 전환하기

new_class.setVisible(true); 
old_class.setVisible(false); 

올바른 방법 :

이 무엇입니까?

답변

8

적절한 전략을 사용하여 하나 개의 최상위 컨테이너에있는 모든 GUI 요소의 화면을 '결합이 될 것이다 스윙을 사용하는 일반적인 방법 (일반적으로 CardLayout를하지만, 악마가 세부에있다).

많은 다른 대안도 this answer 참조 : This GUI 몇 가지 다른 옵션 (JSplitPane & 중첩 된 레이아웃)를 보여줍니다. 논리적으로 다른 컨테이너에있을 것입니다 다른 기능을


는 (아마도) 모달 대화 또는 JOptionPane를 사용합니다. E.G. log-in, popped from the main frame :


고려해야 할 또 다른 것은 (데스크탑 모니터)가 스윙이다 우리가 사용자에게 구성 요소의 풍부한을 제공 할 수 있습니다. 예를 들어 Android SD 카드 파일 시스템을 서핑하는 것은 일반적으로 디렉토리 당 하나의 목록을 사용하고 새 디렉토리를 입력 할 때 목록 또는보기의 내용을 변경하여 수행됩니다. 스윙에서 단일 JTree을 사용할 수 있습니다. 따라서 데스크탑 GUI 툴킷에서는 '다른 화면'이 필요하지 않으며 탭 또는 전화에서 사용되도록 설계되었습니다.

여기에 file browser에서 사용되는 나무가 있습니다.

+1

'CardLayout하지만 악마는 details'에? ??, JPanels 추가/삭제와 비교할 때 어떤 의미가 있는지 알 수 없습니다. +1 – mKorbel

+1

@mKorbel 죄송합니다. '추가/제거'를 생각해 본적이 없지만 다른 모든 가능성이 있습니다. 다스). 유스 케이스는 *** CardLayout' ***을 실제로 (비명을 지른다.) ***, 나는 그것을 줄 것이다. –

0

올바른 방법은 JFrames에서 인스턴스를 생성하고 가시성을 설정하는 것입니다.

new Fram1().setVisible(true); 

new Fram2().setVisible(true); 
+2

페이지의 [복수 JFrames, 좋은/나쁜 연습의 사용?] (http://stackoverflow.com/a/9554657/418556) –

관련 문제