1.BWStatTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);- c2 Q& I, ~. C, t- x. C0 F' ]; r
2. for (int i = 0; i < BWStatTable.getColumnCount(); i++) {# f% _1 t# P2 q+ E, Q% O9 ^4 p# a; O
3. TableColumn tc = BWStatTable.getColumn(BWStatTable.; _4 x8 C' n; i5 N0 f
4. getColumnName(i));( K: e+ T$ y* ~ }
5. int c = tc.getModelIndex();2 J1 a! f: p) K. M
6. int width = 0;
9 q5 E/ P* o0 M$ ]. o2 K 7. int maxw = 0;
% O( K5 Y# x" d! E- t 8. for (int r = 0; r < BWStatTable.getRowCount(); ++r) {
, h7 n% ^6 _0 e ~- I7 d 9. TableCellRenderer renderer = BWStatTable.
; ?2 n: e$ c) t( _, o 10. getCellRenderer(r, c); //得到每个单元格的渲染器$ y5 r% p2 I" F; K7 f5 l1 e M
11. Component comp = renderer.getTableCellRendererComponent(; w5 a- N1 S4 y1 \& Q1 C3 Y; }
12. BWStatTable, "", false, false,$ t- R. p- a, L7 L2 {- D0 `
13. r, c);8 A. N3 t) b8 Z) T1 `9 e% ^
14. width = comp.getPreferredSize().width;
- ]+ ]+ e; d: v6 r 15. maxw = width > maxw ? width : maxw;
* r+ t" B* A# j; l- q 16. }; U* C$ }' l0 b2 V/ s- h
17. TableCellRenderer headRenderer = tc.getHeaderRenderer(); //得到每列中的表头渲染器
& {( u2 [! ~$ O5 h5 s( U1 I d 18. if (headRenderer == null) {
" r5 ^8 I4 v: x" Y. @0 A 19. headRenderer = BWStatTable.getTableHeader(). //得到表头中的表头渲染器
3 H; A. R; _0 I 20. getDefaultRenderer();
0 d1 G# f* P# T7 S L2 s% D8 M4 b 21. }% ^0 S( R+ B- D
22. Component comp = headRenderer.getTableCellRendererComponent(
0 m3 W) Z6 M/ l q) _& Q/ @$ A1 ? 23. BWStatTable, tc.getHeaderValue(), false, false, 0,; [7 q$ F, V% Y/ x* w) T
24. i);& N7 i& q0 `7 b
25. int w = comp.getPreferredSize().width;
) x8 s$ _) r. S) C) @ 26. maxw = w > maxw ? w : maxw;
% B$ r$ B' B: M6 F 27. if (BWStatTable.getColumnCount() == 2) {" y# u% [3 o, @( N
28. tc.setMinWidth(maxw + 20);
/ b1 n5 q# E" q/ M 29. tc.setPreferredWidth(maxw + 160);+ C% T5 i4 h7 k7 s% v ?
30. }
* d7 |* K, j3 ? Z 31. if (BWStatTable.getColumnCount() == 3) {
! ]( c3 G0 g; U! e, U 32. tc.setMinWidth(maxw + 20); //列设置宽度+ P( {& d. [0 O- M/ ?
33. tc.setPreferredWidth(maxw + 70);
: D: T8 j6 Q+ D' f* m; v8 d' M 34. }$ Z! |& G; ~ L
35. } |