Swing/TriangleTickSlider のバックアップソース(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- バックアップ を表示
- Swing/TriangleTickSlider へ行く。
TITLE:JSliderの目盛りをアイコンに変更する #navi(../) 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