2010-08-01 7 views

답변

1

질문을 완전히 이해했는지는 알 수 없지만 시도해 보겠습니다. 올바르게 이해했다면 JPanel을 설정하여 테이블을 표시 할 수있는 크기를 알아야합니다.

스윙에서 일반적으로하는 것과는 반대입니다. 대신 패널에 추가하는 구성 요소가 제한 조건을 광고합니다 (java.awt.COmponent에 getPreferredSize(), getMinimumSize() 및 getMaximumSize() 참조). 그런 다음 패널에 설정 한 레이아웃 관리자가 해당 제약 조건 및 윈도우의 현재 크기에 따라 컨테이너 내부의 구성 요소 크기를 조정합니다.

모든 구성 요소를 JPanel 인스턴스에 추가 한 후에 getPreferredSize() 메서드를 사용하여 모든 하위 구성 요소가 배치 된 패널의 "기본 크기"를 가져올 수도 있습니다. (IIRC)

+0

답장을 보내 주셔서 감사합니다. 사실, 사각형으로 테이블 셀을 표현하고 사각형 내부에 문자열을 데이터로 넣으려고합니다. 사각형의 크기와 수는 paintComponent 내부에서 설정됩니다. 그런 다음 테이블이 프레임의 패널에 표시됩니다. 내가 알고 싶은 것은 paintComponent에 의해 그려진 테이블의 크기에 기초하여 패널의 정확한 크기를 설정하는 방법이다. 미리 감사드립니다. – tsmakalagy

+0

@tsmakalagy : @vanza가 시사 하듯이, 적절한 레이아웃 관리자가 여러분을 위해 많은 작업을 수행 할 것입니다. 다음은 "레이아웃 관리자를위한 비주얼 가이드"입니다. http://download.oracle.com/javase/tutorial/uiswing/layout/visual.html – trashgod

1

그래픽 컨텍스트의 FontMetrics 메서드를 사용하여 수행 할 수있는 질문은 있지만 지루하고 오류가 발생하는 것 같습니다. 또는 How to Use Tables 자습서의 예제를 고려하십시오.

부록 : @ camickr의 의견에서 제안한 것처럼 Table Column Adjuster 문서는 JTable과 같은 다용도 기초 구성 요소가 어떻게 변화하는 요구를 충족시키기 위해 기능적으로 향상 될 수 있는지 보여주는 좋은 예입니다. 대조적으로, 여러 개의 직사각형을 그리는 일은 점점 더 어려워 질 수 있습니다.

+0

+1, 바퀴를 재발 명하지 말고 JTable을 사용하십시오. 테이블 컬럼 조절기 (http://tips4java.wordpress.com/2008/11/10/table-column-adjuster)는 컬럼의 적절한 크기 조정을 도와줍니다. – camickr

관련 문제