如何调整JTable的单元格宽度

机构:北大青鸟 时间:2016-02-25 点击:981

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

更多资讯:请访问武汉软件开发培训学校

下一篇:多级指针
返回顶部