TITLE:DesktopPropertyの変更を監視する
#navi(../)
#tags()
RIGHT:Posted by &author(aterai); at 2010-03-29
*DesktopPropertyの変更を監視する [#c48a40cd]
ToolkitにPropertyChangeListenerを追加して、ダブルクリックの速度などの変更を監視します。

-&jnlp;
-&jar;
-&zip;

//#screenshot
#ref(http://lh3.ggpht.com/_9Z4BYR88imo/TQTKxXuJ4EI/AAAAAAAAAWg/utfOkK69KBk/s800/DesktopProperty.png)

**サンプルコード [#g949818a]
#code(link){{
Toolkit.getDefaultToolkit().addPropertyChangeListener("awt.multiClickInterval", new PropertyChangeListener() {
  @Override public void propertyChange(PropertyChangeEvent e) {
    System.out.println("----\n"+e.getPropertyName());
    System.out.println(Toolkit.getDefaultToolkit().getDesktopProperty(e.getPropertyName()));
  }
});
}}

**解説 [#fc286297]
上記のサンプルでは、ToolkitにPropertyChangeListenerを追加して、ダブルクリックの速度と、Windows環境での画面の配色(画面のプロパティ、デザイン、配色の規定(青)、オーブ グリーン、シルバー)の変更を監視しています。

その他、サポートされているWindows デスクトップ関連のプロパティー一覧は、以下のようにして取得することができます。

- [http://docs.oracle.com/javase/jp/6/technotes/guides/swing/1.4/w2k_props.html Windows デスクトップ関連のプロパティーのサポート]のサンプルより
#code{{
import java.awt.*;
public class DesktopPropertyList {
  public static void main(String[] args) {
    for(String s:(String[])Toolkit.getDefaultToolkit().getDesktopProperty("win.propNames"))
      System.out.println(s);
  }
}
}}

**参考リンク [#r4ad71c4]
- [http://docs.oracle.com/javase/jp/6/technotes/guides/swing/1.4/w2k_props.html Windows デスクトップ関連のプロパティーのサポート]
- [http://forums.sun.com/thread.jspa?threadID=5425647 Swing - Should UIManager fire propertyChangeEvents here?]

**コメント [#yb7ef312]
- メモ: [http://docs.oracle.com/javase/jp/6/technotes/guides/swing/1.4/w2k_props.html Windows デスクトップ関連のプロパティーのサポート]の、(TBI)の意味を調べる。「メッセージボックスのフォントカラー」のプロパティー名は文字化け?、重複?。同じく、アイコンのサイズとアイコンの横の間隔など。 -- [[aterai]] &new{2010-03-29 (月) 15:07:50};

#comment