2011-02-14 3 views
1

Java GUI 코드에서 tabpane이라는 JTabbedPane을 사용합니다. 이 tabpane에는 동적 기능이 있습니다. 즉, 탭을 추가하고 닫을 수 있으며 탭 내용이 사용자에 의해 변경 될 수 있습니다.JTabbedPane 직렬화

내가 아는 한 전체 tabpane은 실행 중 임의 액세스 메모리에 남아 있습니다. 하지만 RAM에 남아 있기 위해 현재 선택된 탭만 필요하고 다른 탭은 필요하지 않습니다. 다른 것들은 디스크 메모리에 기록되어야하며 호출 될 때마다 RAM에로드되어야합니다.

JTabbedPaneSerializable 구성 요소로 생각됩니다. 그러나 이것을 달성하기위한 정확한 절차는 무엇입니까?

+0

GUI를 직렬화하는 이유는 무엇입니까? – Daniel

답변

3

일부 GUI는 직렬화 할 수 없으며 전체 구성 요소 그래프 만 직렬화 할 수 있습니다. 하나의 가능성은 별도의 파일로 각 창을 직렬화하고 필요에 따라 직렬화를 해제하는 것입니다. 그러나 부모 탭과 그 위의 모든 것을 직접 수동으로 구성해야합니다.

+0

실제로 메모리 부족 상태의 브라우저를 설계 할 계획입니다. Firefox와 같은 탭 브라우저는 탭을 어떻게 관리합니까? 그들은 RAM이나 다른 메커니즘에 모든 것을 보관합니까? 공유하십시오. –

+0

예, 그들은 모든 것을 메모리 [RAM]에 유지합니다 ... –

+1

램이 없으면 교환을 사용하십시오. – Daniel

2

JTabbedPaneSerializable 인 것은 사실입니다. 그러나 문제의 해결책에 따라 속성 파일을 읽은 다음 등록 정보 파일을 읽은 다음 프로그램이 속성 파일을 읽은 다음 필요한 탭을 결정하고 새 JTabbedPane을 만든 다음 대신 사용하는 것이 좋습니다. JTabbedPane을 일련 번호 지정하는 것은 너무 유용하지는 않습니다.

+0

'속성 파일'에 대해 더 설명해 주시겠습니까? 이 아이디어는 브라우저 응용 프로그램에 유용합니까? –

+1

속성 파일은 CreatePanel = 1 \ nEditpanel = 0 \ nDeletePanel = 1 형식의 키 값 쌍이있는 파일입니다. [ "\ n"은 실제로 속성 파일의 새 줄에 해당합니다. 런타임에 UI를 구성 할 수있게하려는 경우 유용합니다. 과정은 다음과 같습니다 : 특정 변수를 사용하여 해당 특정 패널을 포함 시킬지 여부를 나타냅니다. 그렇다면 JTabbedPane에 포함 시키십시오. 또한 java.util.Property 클래스는 속성 파일을 읽고 업데이트하기에 편리합니다. –

관련 문제