1.BWStatTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
2. for (int i = 0; i < BWStatTable.getColumnCount(); i++) {
3. TableColumn tc = BWStatTable.getColumn(BWStatTable.
4. getColumnName(i));
5. int c = tc.getModelIndex();
6. int width = 0;
7. int maxw = 0;
8. for (int r = 0; r < BWStatTable.getRowCount(); ++r) {
9. TableCellRenderer renderer = BWStatTable.
10. getCellRenderer(r, c); //获得每个单元格的衬着器
11. Component comp = renderer.getTableCellRendererComponent(
12. BWStatTable, , false, false,
13. r, c);
14. width = comp.getPreferredSize().width;
15. maxw = width > maxw ? width : maxw;
16. }
17. TableCellRenderer headRenderer = tc.getHeaderRenderer(); //获得每列中的表头衬着器
18. if (headRenderer == null) {
19. headRenderer = BWStatTable.getTableHeader(). //获得表头中的表头衬着器
20. getDefaultRenderer();
21. }
22. Component comp = headRenderer.getTableCellRendererComponent(
23. BWStatTable, tc.getHeaderValue(), false, false, 0,
24. i);
25. int w = comp.getPreferredSize().width;
26. maxw = w > maxw ? w : maxw;
27. if (BWStatTable.getColumnCount() == 2) {
28. tc.setMinWidth(maxw + 20);
29. tc.setPreferredWidth(maxw + 160);
30. }
31. if (BWStatTable.getColumnCount() == 3) {
32. tc.setMinWidth(maxw + 20); //列设置宽度
33. tc.setPreferredWidth(maxw + 70);
34. }
35. }
更多资讯:请访问武汉软件开发培训学校