Swing/TriangleTickSlider のバックアップ差分(No.2)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/TriangleTickSlider へ行く。
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:JSliderの目盛りをアイコンに変更する
#navi(../)
#tags()
RIGHT:Posted by &author(aterai); at 2010-05-24
*JSliderの目盛りをアイコンに変更する [#xbb1ae7a]
JSliderの目盛りをアイコンで描画します。
-&jnlp;
-&jar;
-&zip;
//#screenshot
#ref(http://lh6.ggpht.com/_9Z4BYR88imo/TQTWS_t-t1I/AAAAAAAAApA/78UrJyqx8og/s800/TriangleTickSlider.png)
**サンプルコード [#rf8f8227]
#code(link){{
JSlider slider = new JSlider(0,100);
slider.setMajorTickSpacing(10);
slider.setMinorTickSpacing(5);
slider.setPaintLabels(true);
slider.setSnapToTicks(true);
Dictionary dictionary = slider.getLabelTable();
if(dictionary != null) {
Enumeration elements = dictionary.elements();
Icon tick = new TickIcon();
while(elements.hasMoreElements()) {
JLabel label = (JLabel) elements.nextElement();
label.setBorder(BorderFactory.createEmptyBorder(1,0,0,0));
label.setIcon(tick);
label.setIconTextGap(0);
label.setVerticalAlignment(SwingConstants.TOP);
label.setVerticalTextPosition(SwingConstants.BOTTOM);
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setHorizontalTextPosition(SwingConstants.CENTER);
label.setForeground(Color.RED);
}
}
}}
**解説 [#xf147d2c]
上記のサンプルでは、JSliderのラベル(JLabel)をJSlider#getLabelTable()メソッドで取得し、このラベルに三角形のアイコンを追加して、目盛り(MajorTick)の代わりとして表示しています。
-注: JSlider#setOrientation(SwingConstants.VERTICAL)には未対応
**参考リンク [#l55155ea]
-[[JSliderのUIや色を変更する>Swing/VolumeSlider]]
-[[JSliderの目盛にアイコンや文字列を追加する>Swing/SliderLabelTable]]
**コメント [#a4d8203c]
#comment