• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JTableのソートアイコンを変更
#navi(../)
#tags()
RIGHT:Posted by &author(aterai); at 2008-07-07
*JTableのソートアイコンを変更 [#b377199f]
JTableのソートアイコンを非表示にしたり、別の画像に変更します。
---
category: swing
folder: TableSortIcon
title: JTableのソートアイコンを変更
tags: [JTable, JTableHeader, Icon, UIManager]
author: aterai
pubdate: 2008-07-07T11:40:12+09:00
description: JTableのソートアイコンを非表示にしたり、別の画像に変更します。
image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTUsaUYVkI/AAAAAAAAAmc/34Qz14LqOGc/s800/TableSortIcon.png
---
* 概要 [#summary]
`JTable`のソートアイコンを非表示にしたり、別の画像に変更します。

-&jnlp;
-&jar;
-&zip;
#download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTUsaUYVkI/AAAAAAAAAmc/34Qz14LqOGc/s800/TableSortIcon.png)

//#screenshot
#ref(http://lh6.ggpht.com/_9Z4BYR88imo/TQTUsaUYVkI/AAAAAAAAAmc/34Qz14LqOGc/s800/TableSortIcon.png)

**サンプルコード [#i75d0d59]
* サンプルコード [#sourcecode]
#code(link){{
UIManager.put("Table.ascendingSortIcon",  new IconUIResource(emptyIcon));
UIManager.put("Table.descendingSortIcon", new IconUIResource(emptyIcon));
}}
class EmptyIcon implements Icon {
  @Override public void paintIcon(Component c, Graphics g, int x, int y) {
    /* Empty icon */
  }

**解説 [#x0397842]
上記のサンプルでは、UIManagerを使用して、以下のような空(0x0)のIconや、透過png画像などをJTableのヘッダに表示されるソートアイコンを変更しています。
  @Override public int getIconWidth() {
    return 0;
  }

#code{{
private static final Icon emptyIcon = new Icon() {
  @Override public void paintIcon(Component c, Graphics g, int x, int y) {}
  @Override public int getIconWidth()  { return 0; }
  @Override public int getIconHeight() { return 0; }
};
  @Override public int getIconHeight() {
    return 0;
  }
}
// ...
UIManager.put("Table.ascendingSortIcon", new IconUIResource(new EmptyIcon()));
UIManager.put("Table.descendingSortIcon", new IconUIResource(new EmptyIcon()));
}}

//**参考リンク
**コメント [#v8f4a771]
* 解説 [#explanation]
上記のサンプルでは、`UIManager`を使用して`JTable`のヘッダに表示されるソートアイコンを変更しています。

- `Default`
-- `UIManager.getLookAndFeelDefaults().getIcon("Table.ascendingSortIcon")`などで取得した`LookAndFeel`でのデフォルトソートアイコンを表示
- `Empty`
-- サイズ`0`の`Icon`でソートアイコンを非表示化
- `Custom`
-- 透過`png`画像から生成したソートアイコンを表示

* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/Icon.html Icon (Java Platform SE 8)]
- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/UIManager.html#getLookAndFeelDefaults-- UIManager#getLookAndFeelDefaults() (Java Platform SE 8)]

* コメント [#comment]
#comment
#comment