职业教育新东方网 > 职业教育 > 计算机 > Java认证 > 备考辅导 > 公共基础知识 > 文章正文

调整JTable的单元格宽度

分享到:

2011-11-24 11:43  作者:  来源:互联网  字号:T|T

  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. }

(实习编辑 王禹默)

热点课讯

精彩问答

提问