• 追加された行はこの色です。
  • 削除された行はこの色です。
#navi(../)
*JTableHeaderのTooltipsを列ごとに変更 [#k51269f9]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2005-05-23~
更新日:&lastmod;
---
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`がカーソルのある列の内容などを表示するようにします。

#contents
**概要 [#ccc2654e]
JTableHeaderのTooltipsが、カーソルのある列の内容などを表示するようにします。
#download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTNx5xm6BI/AAAAAAAAAbU/LCSjxDNp8p0/s800/HeaderTooltips.png)

http://terai.xrea.jp/swing/headertooltips/screenshot.png
* サンプルコード [#sourcecode]
#code(link){{
JTable table = new JTable(model);
table.setTableHeader(new JTableHeader(table.getColumnModel()) {
  @Override public String getToolTipText(MouseEvent e) {
    int i = columnAtPoint(e.getPoint());
    TableColumn c = getColumnModel().getColumn(i);
    return String.format("%s (width=%dpx)", c.getHeaderValue(), c.getWidth());
  }
});
}}

**サンプルコード [#q4ba9311]
 JTableHeader header = new JTableHeader(table.getColumnModel()) {
   public String getToolTipText(MouseEvent me) {
     int col = columnAtPoint(me.getPoint());
     if(col<0) {
       return null;
     }else{
       return getTable().getColumnName(col)+"について詳しい説明など";
     }
   }
 };
 table.setTableHeader(header);
* 解説 [#explanation]
- `JTableHeader#getToolTipText(MouseEvent)`メソッドをオーバーライドしてマウスカーソルの下にあるカラムヘッダを取得
-- その名前とその幅を`TooltipsText`として使用

-[[サンプルを起動>http://terai.xrea.jp/swing/headertooltips/sample.jnlp]]
-[[jarファイル>http://terai.xrea.jp/swing/headertooltips/sample.jar]]
-[[ソース>http://terai.xrea.jp/swing/headertooltips/src.zip]]
* 参考リンク [#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]]

**解説 [#uf43d271]
上記のサンプルでは、マウスカーソルの下にあるヘッダ列の名前などをTooltipsとして表示するようにしています。
* コメント [#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};

//**参考リンク
**コメント [#k6fbca52]
#comment