2011-09-12 29 views
2

我有一個包含3列的表格,並希望第一個表格是所需的最小大小。標題爲「Level」,根據我使用的字體/操作系統,似乎爲25-29像素。然而,表頭似乎需要Windows上的至少35個和Mac上的52個才能以橢圓形顯示它。我無法弄清楚爲什麼需要額外的空間(沒有邊框等)。正確確定JTable的一列的標題大小

我終於發現,以下將給出在Windows(35)所需的大小,但在Mac上它返回36這是不夠的(最有可能是由於排序箭頭指標旁邊,而不是上面的文本) ...

table.getTableHeader()。getDefaultRenderer()。getTableCellRendererComponent(NULL, table.getColumnModel()。getColumn(0).getHeaderValue(),假的,假的,0,0 ).getPreferredSize ().width

什麼是正確的方式來做到這一點,是平臺獨立T'或者,Mac上有沒有一種方法可以計算所需的額外空間,這樣我就不必硬編碼像上面的結果添加15個左右像素的東西了?

回答

1
+1

與另一個例子http://stackoverflow.com/questions/7258943/how-do-i-get-a-jtable-header-to-display-entire-column-names-instead-of-shortening +1 – mKorbel

+0

@mKorbel:謝謝!良好的聯繫。我忘記了「表格調節器」。 – trashgod

+0

好的,我上面使用的這一行是基於_Setting和更改Column Widths_的例子,它適用於Windows,但不適用於Mac。 _Table Column Adjuster_不僅僅使用默認的渲染器,而且添加了該部分也可以在Mac上使用。謝謝! –