여러 개의 직사각형을 그려 테이블을 그리는 프로그램을 작성하고 있습니다. 테이블의 행과 열은 런타임에 설정됩니다. 그래서 테이블을 표시 할 jpanel의 크기를 어떻게 알 수 있습니까?넣은 그래픽의 크기에 따라 판넬의 크기를 얻는 방법
답변
질문을 완전히 이해했는지는 알 수 없지만 시도해 보겠습니다. 올바르게 이해했다면 JPanel을 설정하여 테이블을 표시 할 수있는 크기를 알아야합니다.
스윙에서 일반적으로하는 것과는 반대입니다. 대신 패널에 추가하는 구성 요소가 제한 조건을 광고합니다 (java.awt.COmponent에 getPreferredSize(), getMinimumSize() 및 getMaximumSize() 참조). 그런 다음 패널에 설정 한 레이아웃 관리자가 해당 제약 조건 및 윈도우의 현재 크기에 따라 컨테이너 내부의 구성 요소 크기를 조정합니다.
모든 구성 요소를 JPanel 인스턴스에 추가 한 후에 getPreferredSize() 메서드를 사용하여 모든 하위 구성 요소가 배치 된 패널의 "기본 크기"를 가져올 수도 있습니다. (IIRC)
그래픽 컨텍스트의 FontMetrics
메서드를 사용하여 수행 할 수있는 질문은 있지만 지루하고 오류가 발생하는 것 같습니다. 또는 How to Use Tables 자습서의 예제를 고려하십시오.
부록 : @ camickr의 의견에서 제안한 것처럼 Table Column Adjuster 문서는 JTable
과 같은 다용도 기초 구성 요소가 어떻게 변화하는 요구를 충족시키기 위해 기능적으로 향상 될 수 있는지 보여주는 좋은 예입니다. 대조적으로, 여러 개의 직사각형을 그리는 일은 점점 더 어려워 질 수 있습니다.
+1, 바퀴를 재발 명하지 말고 JTable을 사용하십시오. 테이블 컬럼 조절기 (http://tips4java.wordpress.com/2008/11/10/table-column-adjuster)는 컬럼의 적절한 크기 조정을 도와줍니다. – camickr
- 1. QListView를 편집기 크기에 따라 크기를 조정하는 방법
- 2. WPF 글꼴 크기를 화면 크기에 따라 설정하십시오.
- 3. 페이지 크기를 얻는 방법
- 4. 보기의 크기를 다른보기의 크기에 따라 결정하는 방법은 무엇입니까?
- 5. 브라우저 크기에 따라 텍스트 크기를 설정하는 방법은 무엇입니까?
- 6. 셀 크기에 따라 UITableViewCell의 액세서리보기의 크기를 조정하는 방법은 무엇입니까?
- 7. Android 화면 크기에 따라 이미지 크기를 변경 하시겠습니까?
- 8. 내용 크기에 따라 동적으로 모달 대화 상자의 크기를 조절하십시오.
- 9. 아이콘의 크기에 따라 사용할 글꼴 크기를 파악하는 방법은 무엇입니까?
- 10. Flex3 : 내용의 크기에 따라 컨테이너의 크기를 조정하려면 어떻게해야합니까?
- 11. 화면 크기에 따라 .swf 파일의 크기를 조정하는 방법은 무엇입니까?
- 12. wpf의 페이지 크기에 따라 컨트롤을 늘리는 방법
- 13. 콘텐츠의 크기에 따라 iFrame을 '키우는 방법'
- 14. 브라우저 이미지 크기에 따라 이미지 크기가 자동으로 조정됩니다.
- 15. 화면 크기에 따라 높이가 달라집니다.
- 16. GLSurface 크기를 얻는 방법?
- 17. 배열 크기를 얻는 방법
- 18. 레이블 크기에 따라 패널 크기 조정
- 19. UITextView의 크기에 따라 자동 크기 조정 UIView
- 20. 배열의 크기에 따라 self.view 변경하기
- 21. Delphi 2009에서 이미지의 현재보기 크기를 얻는 방법
- 22. 값의 범위는 데이터 유형의 크기에 따라 다릅니다.
- 23. 창 크기에 따라 크기 조정 데이터 그리드를 제한하는 방법?
- 24. 뷰포트 크기에 맞게 UIWebView의 이미지 크기를 조정하십시오.
- 25. 역할에 따라 사용자를 얻는 방법?
- 26. Mac 데스크탑 크기를 얻는 방법
- 27. CMFCPropertyFontProperty에서 글꼴 크기를 얻는 방법
- 28. 안드로이드에서 캐시 크기를 얻는 방법
- 29. 인증서의 키 크기를 얻는 방법
- 30. 보기의 콘텐츠 크기를 얻는 방법
답장을 보내 주셔서 감사합니다. 사실, 사각형으로 테이블 셀을 표현하고 사각형 내부에 문자열을 데이터로 넣으려고합니다. 사각형의 크기와 수는 paintComponent 내부에서 설정됩니다. 그런 다음 테이블이 프레임의 패널에 표시됩니다. 내가 알고 싶은 것은 paintComponent에 의해 그려진 테이블의 크기에 기초하여 패널의 정확한 크기를 설정하는 방법이다. 미리 감사드립니다. – tsmakalagy
@tsmakalagy : @vanza가 시사 하듯이, 적절한 레이아웃 관리자가 여러분을 위해 많은 작업을 수행 할 것입니다. 다음은 "레이아웃 관리자를위한 비주얼 가이드"입니다. http://download.oracle.com/javase/tutorial/uiswing/layout/visual.html – trashgod