Swing/VolumeSlider のバックアップの現在との差分(No.22)
- category: swing folder: VolumeSlider title: JSliderのUIや色を変更する tags: [JSlider] author: aterai pubdate: 2006-12-04T02:52:00+09:00 description: JSliderのトラックやつまみ、色などを変更して、音量調節風のスライダーを作成します。 image:
概要
JSlider
のトラックやつまみ、色などを変更して、音量調節風のスライダーを作成します。
Screenshot
Advertisement
サンプルコード
class TriangleSliderUI extends MetalSliderUI {
@Override public void paintThumb(Graphics g) {
Graphics2D g2 = (Graphics2D) g.create();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.fillOval(thumbRect.x, thumbRect.y, thumbRect.width, thumbRect.height);
g2.dispose();
}
#spanadd
#spanend
@Override public void paintTrack(Graphics g) {
int cx, cy, cw, ch;
int pad;
Rectangle trackBounds = trackRect;
if (slider.getOrientation() == SwingConstants.HORIZONTAL ) {
Graphics2D g2 = (Graphics2D) g.create();
#spandel
//...
#spanend
#spanadd
// ...
#spanend
slider2.setUI(new MetalSliderUI() {
@Override protected void paintHorizontalLabel(Graphics g, int v, Component l) {
JLabel lbl = (JLabel) l;
lbl.setForeground(Color.GREEN);
super.paintHorizontalLabel(g, v, lbl);
}
});
slider2.setForeground(Color.BLUE);
View in GitHub: Java, Kotlin解説
- 上:
- 上:
TriangleSliderUI
MetalSliderUI
を継承するSliderUI
を設定paintThumb(Graphics)
メソッドをオーバーライドしてつまみの形を変更paintTrack(Graphics)
メソッドをオーバーライドしてトラックの形と色を変更
- 注: 垂直方向には未対応
- 下:
-
JSlider#setForeground(Color)
で、目盛のキャプションの色を青に変更 -
MetalSliderUI
を継承するSliderUI
を作成して、paintHorizontalLabel(Graphics, int, Component)
メソッドをオーバーライドし目盛を緑色に変更 - 別の方法: JSliderの目盛にアイコンや文字列を追加する
-
- 下:
HorizontalLabelColor
-
JSlider#setForeground(Color)
メソッドで目盛の色を青に変更 -
MetalSliderUI
を継承するSliderUI
を作成-
paintHorizontalLabel(Graphics, int, Component)
メソッドをオーバーライドし目盛を緑色に変更
-
- 目盛の色はJSliderの目盛にアイコンや文字列を追加するでも変更可能
-
参考リンク
- Swing - Problem in changing forground color of JSlider!!
- JSliderの目盛にアイコンや文字列を追加する
- JPopupMenuに垂直JSliderを配置してJToggleButtonの上部に表示する