2011-09-12 9 views
2

3つの列を持つ表があり、最初の列が必要な最小サイズになるようにします。ヘッダーは「レベル」で、使用するフォント/ OSによって25〜29ピクセルのようです。しかし、テーブルヘッダーは、省略記号なしに表示するには、Windowsでは35、Macでは52以上必要です。なぜ余分なスペースが必要なのか分かりません(境界などはありません)。JTableの1つの列のヘッダーのサイズを正しく設定する

私は最終的に、Windows(35)では必要なサイズを与えるが、Macでは36で十分ではないことが分かった(ほとんどの場合、ソート矢印インジケータはテキストではなく、 ...

table.getTableHeader()。のgetDefaultRenderer()。getTableCellRendererComponent(ヌル、 table.getColumnModel()。のgetColumn(0).getHeaderValue()、偽、偽、0、 0).getPreferredSize ().width

これを行うには適切な方法はプラットフォームに依存しませんt?または、余分なスペースを計算する方法がありますので、上記の結果に15ピクセル程度を追加するなどのハードコードは必要ありません。

答えて

1

私はsetPreferredScrollableViewportSize()とし、Setting and Changing Column Widthsに示唆されているアプローチ、pack()に従っています。

+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:ありがとう!良いリンク。私は 'Table Column Adjuster'について忘れてしまいました。 – trashgod

+0

私が上で使用した行は、_SettingとChanging Column Widths_の例に基づいていました。Windowsでは動作しますが、Macでは動作しません。 _Table Column Adjuster_はデフォルトのレンダラーを使用するだけではなく、そのパーツを追加することでMac上で動作するようになります。ありがとう! –

関連する問題