The list of methods to do JTable Header are organized into topic(s).
void
adjustHeader(JTable table) adjust Header
TableCellRenderer headerRenderer = table.getTableHeader().getDefaultRenderer();
for (int i = 0; i < table.getColumnCount(); i++) {
TableColumn column = table.getColumnModel().getColumn(i);
Component header = headerRenderer.getTableCellRendererComponent(table, column.getHeaderValue(), false,
false, 0, i);
column.setPreferredWidth(header.getPreferredSize().width + 8);
int
calcHeaderWidth(int col) calcs the optimal header width of the given column
return calcHeaderWidth(getJTable(), col);
int
calcHeaderWidth(JTable table, int col) Calculates the optimal width for the header of the given table.
if (table == null)
return -1;
if (col < 0 || col > table.getColumnCount()) {
System.out.println("invalid col " + col);
return -1;
JTableHeader header = table.getTableHeader();
TableCellRenderer defaultHeaderRenderer = null;
...
void
cleanHeaderCells(JTable table) clean Header Cells
for (int cCnt = 0; cCnt < table.getColumnCount(); ++cCnt) {
if (table.getValueAt(0, cCnt) == null) {
table.setValueAt("", 0, cCnt);
} else {
String cellValue = (String) table.getValueAt(0, cCnt);
if (cellValue.length() > 0) {
for (int cnt = 0; cnt < badChars.length; ++cnt) {
int indexValue = -1;
...
Border
createTableHeaderEmptyColumnPainter(final JTable table) Creates a Border that paints any empty space to the right of the last column header in the given JTable 's JTableHeader .
return new AbstractBorder() {
@Override
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
JViewport viewport = (JViewport) table.getParent();
if (viewport != null && table.getWidth() < viewport.getWidth()) {
int startX = table.getWidth();
int emptyColumnWidth = viewport.getWidth() - table.getWidth();
paintHeader(g, table, startX, emptyColumnWidth);
...
int
getColumnHeaderWidth(TableColumn col, JTable table) Figures out the width of the column header for the given TableColumn.
String methodName = MODULE_NAME + "getColumnHeaderWidth(TableColumn.JTable)";
int retval = -1;
TableCellRenderer renderer = col.getHeaderRenderer();
if (renderer != null) {
Component comp = renderer.getTableCellRendererComponent(table, col.getHeaderValue(), false, false, 0,
0);
retval = comp.getPreferredSize().width;
} else
...
Dimension
getHeaderDimension(JTable table, TableColumn tableColumn) get Header Dimension
TableCellRenderer renderer = tableColumn.getHeaderRenderer();
if (renderer == null) {
renderer = table.getTableHeader().getDefaultRenderer();
Component comp = renderer.getTableCellRendererComponent(table, tableColumn.getHeaderValue(), false, false,
0, 0);
return comp.getPreferredSize();
int
getSelectedColumn(JTableHeader tableHeader) Get's the selected column header for the given JTableHeader .
Object selectedColumnValue = tableHeader.getClientProperty(SELECTED_COLUMN_KEY);
return selectedColumnValue != null && selectedColumnValue instanceof Integer
? ((Integer) selectedColumnValue)
: NO_COLUMN;