• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JSliderのUIや色を変更する
#navi(../)
*JSliderのUIや色を変更する [#p7ba80c2]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2006-12-04~
更新日:&lastmod;

#contents

**概要 [#w5dc65d7]
JSliderのトラックやつまみ、色などを変更します。

#screenshot

**サンプルコード [#v26925b9]
 class TriSliderUI extends javax.swing.plaf.metal.MetalSliderUI {
   public void paintThumb(Graphics g) {
     Graphics2D g2 = (Graphics2D)g;
     g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
     g2.fillOval(thumbRect.x,thumbRect.y,thumbRect.width,thumbRect.height);
   }
   public void paintTrack(Graphics g) {
     int cx, cy, cw, ch;
     int pad;
     Rectangle trackBounds = trackRect;
     if(slider.getOrientation() == JSlider.HORIZONTAL ) {
       Graphics2D g2 = (Graphics2D)g;
 ......

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

**解説 [#ra75f08b]
上記のサンプルの
- 上のJSlider
-- MetalSliderUI を継承するSliderUIをセットしています。このSliderUIは、paintThumb(Graphics)メソッドをオーバライドしてつまみの形を変更、paintTrack(Graphics)メソッドをオーバライドしてトラックの形と色を変更します。

- 下のJSlider
-- JSlider#setForeground(Color)で、目盛のキャプションの色を青に、MetalSliderUI を継承するSliderUIをセットしています。このSliderUIでは、paintHorizontalLabel(Graphics, int, Component)メソッドをオーバライドして目盛を緑に変更しています。

**参考リンク [#y5a9ba94]
- [[Problem in changing forground color of JSlider!!>http://forum.java.sun.com/thread.jspa?threadID=702119]]

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