读书人

TableHeader组件每个column的宽度怎么

发布时间: 2011-12-31 23:50:30 作者: rapoo

TableHeader组件每个column的宽度如何按照表头column的内容长度自动设定
如题

[解决办法]
public class TestTable {
public static void main(String[] args) {
JFrame frame = new JFrame( "表格 ");
String[] headers = { "第一列 ", "第二列是一个长列 "};

TableColumn tc1 = new TableColumn();
TableColumn tc2 = new TableColumn();
tc1.setHeaderValue(headers[0]);
tc2.setHeaderValue(headers[1]);
tc1.setWidth(headers[0].length()*20);
tc2.setWidth(headers[1].length()*20);

DefaultTableColumnModel dtc = new DefaultTableColumnModel();
dtc.addColumn(tc1);
dtc.addColumn(tc2);


JTableHeader th = new JTableHeader(dtc);
th.setLayout(new FlowLayout());


frame.getContentPane().add(th);
frame.setSize(600, 600);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}
}
[解决办法]
TableCellRenderer renderer = table.getTableHeader().getDefaultRenderer();
for (int columnindex = 0, columncount = table.getColumnCount();columnindex <columncount;columnindex++) {
Component c = renderer.getTableCellRendererComponent(table, table.getColumnName(columnindex), false, false, 0, columnindex);
Dimension dim = c.getPreferredSize();
TableColumn tc = table.getColumn(table.getColumnName(columnindex));
tc.setWidth(dim.width);
tc.sizeWidthToFit();
}

读书人网 >J2SE开发

热点推荐