Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Setting Column Header Tool Tips in a JTable Components

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