Swing/InvertedSlider のバックアップの現在との差分(No.5)
- category: swing folder: InvertedSlider title: JSliderの順序を反転 tags: [JSlider] author: aterai pubdate: 2014-02-10T00:01:53+09:00 description: JSliderの値や目盛りの表示などの順序を反転します。 image:
概要
概要
JSlider
の値や目盛りの表示などの順序を反転します。
Screenshot
Advertisement
サンプルコード
サンプルコード
解説
上記のサンプルでは、JSlider#setInverted(true)
で、値や目盛りの表示を反転しています。
解説
上記のサンプルでは、JSlider#setInverted(true)
で値や目盛りの表示位置を反転しています。
- -
-
JSlider#setInverted(true)
とsetComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT)
で言語に依存する方向を同時に指定可能-
JSlider.HORIZONTAL
の場合、両方指定すると元に戻る -
JSlider.VERTICAL
の場合、JSlider#setInverted(true)
で上最小、下最大に変化し、setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT)
で目盛りの位置が右から左に変化する
-
- 範囲の塗り潰しが可能な
MetalLookAndFeel
の場合、これも反転する - 縦の
JSlider
でComponentOrientation.RIGHT_TO_LEFT
、WindowsLookAndFeel
を設定した場合、ノブのフォーカスが描画されない -
JSlider#setInverted(true)
は言語に依存する方向設定のsetComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT)
と同時に指定可能-
SwingConstants.HORIZONTAL
の場合両方指定すると表示は元に戻る -
SwingConstants.VERTICAL
の場合JSlider#setInverted(true)
で上方向が最小値・下方向が最大値に変化し、setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT)
で目盛りの位置が右側から左側に変化する
-
- 範囲の塗り潰しが可能な
MetalLookAndFeel
の場合その塗り潰しも反転する -
WindowsLookAndFeel
を設定した縦JSlider
でComponentOrientation.RIGHT_TO_LEFT
を指定した場合、ノブのフォーカスが描画されないバグ?がある-
com/sun/java/swing/plaf/windows/TMSchema.java
で右向きノブはstateMap.put(Part.TKP_THUMBRIGHT, sliderThumbStates)
と設定されているが、左向きノブのPart.TKP_THUMBLEFT
が設定されていないので状態変化が反映されない? - フォーカスだけでなく
setEnabled(false)
で無効化してもノブの色が更新されないのでおそらく状態変化が反映されないバグの模様
-