JTableHeaderのTooltipsを列ごとに変更

編集者:Terai Atsuhiro~

作成日:2005-05-23
更新日:2024-02-09 (金) 13:14:41
  • 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

概要

JTableHeaderTooltipsがカーソルのある列の内容などを表示するようにします。

概要

JTableHeaderのTooltipsが、カーソルのある列の内容などを表示するようにします。
http://terai.xrea.jp/swing/headertooltips/screenshot.png

サンプルコード

#spanend
#spanadd
JTable table = new JTable(model);
#spanend
#spanadd
table.setTableHeader(new JTableHeader(table.getColumnModel()) {
#spanend
  @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());
  }
#spanadd
});
#spanend
#spanadd
View in GitHub: Java, Kotlin

サンプルコード

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

解説

  • JTableHeader#getToolTipText(MouseEvent)メソッドをオーバーライドしてマウスカーソルの下にあるカラムヘッダを取得
    • その名前とその幅をTooltipsTextとして使用

参考リンク

解説

上記のサンプルでは、マウスカーソルの下にあるヘッダ列の名前などをTooltipsとして表示するようにしています。

コメント