2011-09-12 1 views
2

3 열이있는 테이블이 있으며 첫 번째 테이블이 필요한 최소 크기가되도록하십시오. 헤더는 "레벨"이며 사용하는 글꼴/OS에 따라 25-29 픽셀 인 것으로 보입니다. 그러나 테이블 헤더는 타원이 없으면 Windows에서 35 개, Mac에서 52 개가 필요합니다. 나는 여분의 공간이 필요한 이유를 알아낼 수 없다 (국경없는 등).JTable의 한 열에 대한 머리글의 크기를 올바르게 조정하십시오.

다음은 Windows (35)에서 필요한 크기를 제공하지만 마침내 36에서는 충분하지 않습니다 (텍스트 대신 위의 정렬 화살표 표시기로 인해) ...

table.getTableHeader().의 getDefaultRenderer(). getTableCellRendererComponent (NULL, table.getColumnModel(). GetColumn이 (1), 거짓 거짓 .getHeaderValue(), 0, 0 ) .getPreferredSize() .width

플랫폼의 독립 실행 방법은 무엇입니까? 티? 또는 Mac에 추가 공간을 계산하여 위의 결과에 15 픽셀을 추가하는 것과 같은 코드를 하드 코딩 할 필요가없는 방법이 있습니까?

답변

1

나는 setPreferredScrollableViewportSize()을 사용하고 Setting and Changing Column Widths에 제안 된 접근 방식을 사용하고 pack()이 뒤 따른다.

+1

다른 예 http://stackoverflow.com/questions/7258943/how-do-i-get-a-jtable-header-to-display-entire-column-names-instead-of-hortening +1 – mKorbel

+0

@m 코벨 : 고마워! 좋은 링크. 나는'테이블 컬럼 조정자 '에 대해 잊어 버렸습니다. – trashgod

+0

좋아, 내가 위에서 사용하는 줄은 Windows에서 작동하지만 Mac에서는 작동하지 않는 _Setting and Changing Widths_의 예제를 기반으로합니다. _Table Column Adjuster_는 기본 렌더러를 사용하지 않고 그 부분을 추가하면 Mac에서도이 기능을 사용할 수 있습니다. 감사! –

관련 문제