a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 184|回复: 0

[其他] JAVA技巧:如何调整JTable的单元格宽度

[复制链接]
发表于 2012-8-4 12:28:23 | 显示全部楼层 |阅读模式
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.        }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-2 04:04 , Processed in 0.242329 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表