public void setCellRendered(JTableIbp table) { Enumeration<TableColumn> tcs = table.getColumnModel().getColumns(); while (tcs.hasMoreElements()) { TableColumn tc = tcs.nextElement(); if (table.getColumnClass(tc.getModelIndex()).toString().contains("java.lang.")) { tc.setCellRenderer(new CustomTableCellRenderer()); } } }
public int calcColumnWidths(JTableIbp table) { int panelsWidth = 0; JTableHeader header = table.getTableHeader(); TableCellRenderer defaultHeaderRenderer = null; if (header != null) defaultHeaderRenderer = header.getDefaultRenderer(); TableColumnModel columns = table.getColumnModel(); // tableModel = table.getModel(); int margin = columns.getColumnMargin(); // only JDK1.3 int rowCount = table.getModel().getRowCount(); for (int i = columns.getColumnCount() - 1; i >= 0; --i) { TableColumn column = columns.getColumn(i); int columnIndex = column.getModelIndex(); int width = -1; TableCellRenderer h = column.getHeaderRenderer(); if (h == null) h = defaultHeaderRenderer; if (h != null) // Not explicitly impossible { Component c = h.getTableCellRendererComponent(table, column.getHeaderValue(), false, false, -1, i); width = c.getPreferredSize().width; } for (int row = rowCount - 1; row >= 0; --row) { TableCellRenderer r = table.getCellRenderer(row, i); Component c = r.getTableCellRendererComponent( table, table.getModel().getValueAt(row, columnIndex), false, false, row, i); width = Math.max(width, c.getPreferredSize().width); } if (width >= 0) column.setPreferredWidth(width + margin); // <1.3: without // margin else ; // ??? panelsWidth += column.getPreferredWidth(); } panelsWidth = panelsWidth > (screenWidth - 30) ? screenWidth : panelsWidth; frameWidth = panelsWidth > (frameWidth - 30) ? (panelsWidth - 30) : frameWidth; return panelsWidth; }