빠른 검색을 위해 하나의 탭과 고급 검색을 위해 하나의 탭이있는 jtabbedpane을 사용하는 데이터베이스에 대한 검색 기능을 만들고 있습니다. 고급 검색은 꽤 많은 필드를 가지고 있으므로 더 커야합니다.하지만 전체 창을 항상 미적 이유로 최대 크기로 유지하고 싶지는 않습니다. 창에 변경 리스너를 추가하고 탭을 기준으로 창의 크기를 조정하려고 시도했지만 탭을 클릭 할 때 코드가 실행되지만 아무것도 수행하지 않습니다. ive는 tabbedSearchPane.setSize()를 사용하여 tabbedSearchPane.validate()를 사용하고 setSize + validate를 사용하여 구성 요소의 크기를 조정하려고 시도했지만 아무 것도하지 않는 것 같습니다. 실제로 jtabbedpane의 크기를 실제로 변경하는 방법을 알아야합니다.jtabbedpane 다른 크기의 탭
0
A
답변
1
Preferred Size in Tabs에 설명 된대로 관찰 한 바와 같이 JTabbedPane
은 가장 큰 패널을 수용하기 위해 매우 열심히 노력합니다. 큰 창에서 작은 창으로 전환하려면 더 큰 창을 작은 창과 동일한 크기의 임시 창으로 대체하고 invalidate()
탭 창으로 대체해야합니다. 반대는 다른 방향으로 가야합니다. 그것은 투쟁입니다. 또는 CardLayout
(here)을 사용하는 것이 좋습니다. 둘러싼 컨테이너의 크기를 조정하려면이 관련 example이 pack()
을 사용하는 방식에 유의하십시오.
0
문제없이이 문제를 해결했습니다.
tabbedPane.setPreferredSize(new Dimension(1, 230));
I 칠-재 검증을 모두 jtabbed/parentpanel 모두 후 :
tabbedPane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
switch (tabbedPane.getSelectedIndex()) {
case 0:
tabbedPane.setPreferredSize(new Dimension(1, 230));
break;
case 1:
tabbedPane.setPreferredSize(new Dimension(1, 330));
break;
case 2:
tabbedPane.setPreferredSize(new Dimension(1, 430));
break;
}
}
});
와 물론 난 내 JTabbedPane에를 만들 때 (이 어떤 역할을하면 내 탭 창은 다른 패널에서 상속) 이,하지만 다른 이유로 ... 이것은 repain/revalidate를 호출하지 않아도 작동합니다.
미리보기 (빨간색 테두리 = 다른 패널)
관련 문제
- 1. JTabbedPane 탭
- 2. 자바 JTabbedPane, 다른 탭 업데이트 JLabel 값?
- 3. JTabbedPane 탭 맞춤
- 4. JTabbedPane - 탭 주위에 기본 테두리를 설정합니다.?
- 5. JTabbedPane : 탭 자체 앞뒤의 구성 요소
- 6. JTabbedPane 직렬화
- 7. JTabbedPane : 탭의 왼쪽에있는 아이콘
- 8. null 컴퍼넌트를 추가하는 JTabbedPane
- 9. 다른 크기의 텍스트 제공
- 10. 탭을 선택하면 JTabbedPane 이벤트가 발생합니다.
- 11. 포커스 문제 추적 (JTabbedPane)
- 12. Java JTabbedPane 질문
- 13. 다른 화면 크기의 Android CSS
- 14. 다른 크기의 netbeans로 UI를 만드십시오!
- 15. 다른 용지 크기의 페이지 삽입하기
- 16. JTabbedPane 스윙 업데이트 오류
- 17. JTabbedPane 구성 요소에 액세스
- 18. Swing JTabbedPane 레이블의 기본 글꼴을 얻으려면 어떻게해야합니까?
- 19. JTabbedPane 자바를 만드는 방법은 무엇입니까?
- 20. JScrollPane 및 JTabbedPane 크기 조정 문제
- 21. 동적 크기의 패널
- 22. 다른 활동의 탭 호스트 탭 제목 변경
- 23. JSplitPanel (또는 JTabbedPane)의 문제점은 무엇입니까?
- 24. Dlsym : 다른 크기의 정수에서 포인터로 캐스트
- 25. CListCtrl에서 다른 크기의 이미지를 표시하는 방법
- 26. 뷰어 컨트롤보고 - 다른 크기의 그래프 생성
- 27. 다른 크기의 이미지가 두 개있는 경우
- 28. Android 다른 레이아웃 크기의 스타일 継承
- 29. 다른 크기의 스택에서 컴파일러 할당 수행
- 30. 다른 크기의 셀을 사용하여 테이블 만들기
이것은 내가 SO에서 발견 한 행동의 최선의 설명이다. 당신이'invalidate()'라고 말할 때 당신이 바꿀 때'tabLarge.Invalidate()'라고 불리는가? 나는 이것을 어떻게하는지 생각하기 위해 고심하고있다. – Pureferret
아니요'invalidate()'는 후속'validate()'또는'pack()'에서 컨테이너가 필요한 레이아웃으로 표시합니다. – trashgod
그래서 전환 할 때 다른 탭의 내용을 제거하고 빈 임시 패널로 교체해야합니까? 어떻게 그런 종류의 행동을합니까? changeListener? – Pureferret