TITLE:JTableHeaderのTooltipsを列ごとに変更

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が、カーソルのある列の内容などを表示するようにします。

サンプルコード

#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

#screenshot

解説

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

サンプルコード

#spanend
 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);
#spandel
  • &jnlp;
  • &jar;
  • &zip;

参考リンク

解説

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

コメント