Setting Column Header Tool Tips in a JTable Components : JTableHeader « Swing « Java Tutorial






import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.util.HashMap;
import java.util.Map;

import javax.swing.JTable;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;

public class Main {
  public static void main(String[] argv) throws Exception {
    int rows = 10;
    int cols = 5;
    JTable table = new JTable(rows, cols);
    JTableHeader header = table.getTableHeader();

    ColumnHeaderToolTips tips = new ColumnHeaderToolTips();
    for (int c = 0; c < table.getColumnCount(); c++) {
      TableColumn col = table.getColumnModel().getColumn(c);
      tips.setToolTip(col, "Col " + c);
    }
    header.addMouseMotionListener(tips);
  }
}

class ColumnHeaderToolTips extends MouseMotionAdapter {
  TableColumn curCol;
  Map tips = new HashMap();
  public void setToolTip(TableColumn col, String tooltip) {
    if (tooltip == null) {
      tips.remove(col);
    } else {
      tips.put(col, tooltip);
    }
  }
  public void mouseMoved(MouseEvent evt) {
    JTableHeader header = (JTableHeader) evt.getSource();
    JTable table = header.getTable();
    TableColumnModel colModel = table.getColumnModel();
    int vColIndex = colModel.getColumnIndexAtX(evt.getX());
    TableColumn col = null;
    if (vColIndex >= 0) {
      col = colModel.getColumn(vColIndex);
    }
    if (col != curCol) {
      header.setToolTipText((String) tips.get(col));
      curCol = col;
    }
  }
}








14.61.JTableHeader
14.61.1.Removing the Column Headers from a Scrollable in a JTable Component
14.61.2.Removing Column Headers: provide empty strings as the column header names.Removing Column Headers: provide empty strings as the column header names.
14.61.3.Hiding column headers: table.setTableHeader(null);Hiding column headers: table.setTableHeader(null);
14.61.4.Using Tooltips in Table Headers: Showing Tooltip Text in a Table HeaderUsing Tooltips in Table Headers: Showing Tooltip Text in a Table Header
14.61.5.Customizing Column Headers with IconsCustomizing Column Headers with Icons
14.61.6.Creating a Custom Column Header Renderer in a JTable Component
14.61.7.Setting Column Header Tool Tips in a JTable Components
14.61.8.Customizing a JTableHeader Look and Feel
14.61.9.Showing the Table Header in a Non-Scrollable JTable Component
14.61.10.Implementing Variable-Height Column Headers in a JTable Component
14.61.11.Listening for Clicks on a Column Header in a JTable Component