1.BWStatTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
2 N) a0 G. I6 }4 l( E 2. for (int i = 0; i < BWStatTable.getColumnCount(); i++) {
9 ]' p" p$ U% U 3. TableColumn tc = BWStatTable.getColumn(BWStatTable.8 v" | p5 t/ @' b9 u2 f
4. getColumnName(i));
4 {! k6 Q; {1 L 5. int c = tc.getModelIndex();
4 z9 d: m) |: t8 e% }- ?% @ N 6. int width = 0;6 {- B3 Y# Y7 R; ]( \, p
7. int maxw = 0;
. ]5 t7 H6 j& y& g" K/ Y) S 8. for (int r = 0; r < BWStatTable.getRowCount(); ++r) {
/ f K4 H2 Z+ @$ j* m# _/ q3 [& C 9. TableCellRenderer renderer = BWStatTable.
3 g g8 {9 d! O. A 10. getCellRenderer(r, c); //得到每个单元格的渲染器0 o, z8 O3 J7 z( ?, \6 l# J& b
11. Component comp = renderer.getTableCellRendererComponent(
, O( E$ e8 r4 b 12. BWStatTable, "", false, false,
& w2 `3 x/ E* V& x7 P 13. r, c);/ S8 z7 ~+ t/ h! q, ^. C4 ?
14. width = comp.getPreferredSize().width;+ ?7 F0 Q8 W- H
15. maxw = width > maxw ? width : maxw;0 R7 K% D: r, Z
16. }
; g) y, y" i& ^4 P7 ] 17. TableCellRenderer headRenderer = tc.getHeaderRenderer(); //得到每列中的表头渲染器
7 |, @& Z! z; E 18. if (headRenderer == null) {4 r8 B( O- ~ w9 y& n( |
19. headRenderer = BWStatTable.getTableHeader(). //得到表头中的表头渲染器
6 n7 g r( `" W5 o 20. getDefaultRenderer();
7 }. C; `$ m7 w- H 21. }
+ O9 C& y% ~, A" E 22. Component comp = headRenderer.getTableCellRendererComponent(; y5 K, V- I# b* ]7 X
23. BWStatTable, tc.getHeaderValue(), false, false, 0,6 G7 g& D* ?& F/ L8 X* ]' |! ]( g5 r
24. i);
8 k0 ] k: g3 L7 }4 U* W3 t+ ~ 25. int w = comp.getPreferredSize().width;
; y& a/ A4 q& F1 j+ k9 T: q 26. maxw = w > maxw ? w : maxw;
2 s5 q6 V1 }- } u+ Z* Z2 }; @ 27. if (BWStatTable.getColumnCount() == 2) {
. H0 H1 X, ]2 }- H 28. tc.setMinWidth(maxw + 20);
; w1 e* c" J4 f. H, Y8 ]1 u: X 29. tc.setPreferredWidth(maxw + 160);
: s- b* Z% R) Z9 ]0 ^% s 30. }
( i5 v% Y( e$ C9 z. Y2 d) u+ v& G; { 31. if (BWStatTable.getColumnCount() == 3) {
7 {0 z4 d6 X7 o9 E: T+ X- j) Z 32. tc.setMinWidth(maxw + 20); //列设置宽度; \& q) D, N+ }0 ?3 J' P
33. tc.setPreferredWidth(maxw + 70);
/ _- t. B( @+ Y- @+ q; M6 u X 34. }$ J. G( p/ ^' m' }5 o2 B, v
35. } |