Swing/TriangleTickSlider のバックアップ(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TriangleTickSlider へ行く。
- 1 (2012-11-17 (土) 03:47:40)
- 2 (2013-01-01 (火) 16:28:10)
- 3 (2014-11-28 (金) 01:30:27)
- 4 (2014-12-09 (火) 21:03:47)
- 5 (2016-03-02 (水) 13:38:20)
- 6 (2017-07-19 (水) 15:18:29)
- 7 (2018-07-17 (火) 18:50:46)
- 8 (2020-07-15 (水) 16:14:55)
- 9 (2021-12-15 (水) 20:51:39)
- 10 (2024-05-12 (日) 03:32:26)
- 11 (2025-01-03 (金) 08:57:02)
- 12 (2025-01-03 (金) 09:01:23)
- 13 (2025-01-03 (金) 09:02:38)
- 14 (2025-01-03 (金) 09:03:21)
- 15 (2025-01-03 (金) 09:04:02)
- title: JSliderの目盛りをアイコンに変更する tags: [JSlider, Icon, JLabel] author: aterai pubdate: 2010-05-24T15:00:41+09:00 description: JSliderの目盛りをアイコンで描画します。
概要
JSlider
の目盛りをアイコンで描画します。
Screenshot

Advertisement
サンプルコード
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);
}
}
View in GitHub: Java, Kotlin解説
上記のサンプルでは、JSlider
のラベル(JLabel
)をJSlider#getLabelTable()
メソッドで取得し、このラベルに三角形のアイコンを追加して、目盛り(MajorTick
)の代わりとして表示しています。
- 注:
JSlider#setOrientation(SwingConstants.VERTICAL)
には未対応