---
category: swing
folder: HeaderTooltips
title: JTableHeaderのTooltipsを列ごとに変更
tags: [JTable, JTableHeader, JToolTip]
author: aterai
pubdate: 2005-05-23T10:16:01+09:00
description: JTableHeaderのTooltipsがカーソルのある列の内容などを表示するようにします。
image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTNx5xm6BI/AAAAAAAAAbU/LCSjxDNp8p0/s800/HeaderTooltips.png
---
* 概要 [#summary]
`JTableHeader`の`Tooltips`がカーソルのある列の内容などを表示するようにします。

#download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTNx5xm6BI/AAAAAAAAAbU/LCSjxDNp8p0/s800/HeaderTooltips.png)

* サンプルコード [#sourcecode]
#code(link){{
JTable table = new JTable(model);
table.setTableHeader(new JTableHeader(table.getColumnModel()) {
  @Override public String getToolTipText(MouseEvent e) {
    int c = columnAtPoint(e.getPoint());
    return getTable().getColumnName(c) + DUMMY_TEXT;
    int i = columnAtPoint(e.getPoint());
    TableColumn c = getColumnModel().getColumn(i);
    return String.format("%s (width=%dpx)", c.getHeaderValue(), c.getWidth());
  }
});
}}

* 解説 [#explanation]
上記のサンプルでは、`JTableHeader#getToolTipText(MouseEvent)`メソッドをオーバーライドしてマウスカーソルの下にあるカラムヘッダの名前を`TooltipsText`として返すよう設定しています。
- `JTableHeader#getToolTipText(MouseEvent)`メソッドをオーバーライドしてマウスカーソルの下にあるカラムヘッダを取得
-- その名前とその幅を`TooltipsText`として使用

* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/table/JTableHeader.html#getToolTipText-java.awt.event.MouseEvent- JTableHeader#getToolTipText() (Java Platform SE 8)]
- [[JTableのTooltipsを行ごとに変更>Swing/RowTooltips]]
- [[JTableのセルがクリップされている場合のみJToolTipを表示>Swing/ClippedCellTooltips]]

* コメント [#comment]
#comment
- 文字列がクリップされている場合だけ`JToolTip`を表示する -- &user(aterai); &new{2009-10-07 (水) 01:00:19};
-- [[JTableのセルがクリップされている場合のみJToolTipを表示>Swing/ClippedCellTooltips]]に移動 -- &user(aterai); &new{2009-10-12 (月) 17:43:41};

#comment