0

水平JSliderが0から100まであるとします。やりたいことは次のとおりです。-メジャー間隔を10に設定し、マイナー間隔を5に設定しますが、数字は表示されません-端(0と100)の値は表示されます。 -ポジショニング矢印を移動するときに、マウスカーソルの横に実際の値を示すラベルを表示したいと思います。

4

1 に答える 1

1

主間隔を10に設定し、副間隔を5に設定しますが、数字は表示されないはずです-端の値(0と100)は表示されている必要があります

これは、JSliderのいくつかの方法を使用して簡単に行うことができます。

JSlider slider = new JSlider(JSlider.VERTICAL, 0, 100, 0);
slider.setMinorTickSpacing(5);
slider.setMajorTickSpacing(10);
slider.setPaintTicks(true);
Hashtable<Integer, JLabel> labels = new Hashtable<Integer, JLabel>();
labels.put(0, new JLabel("0"));
labels.put(100, new JLabel("100"));
slider.setLabelTable(labels);
slider.setPaintLabels(true);

ポジショニング矢印を移動するときに、マウスカーソルの横に実際の値を示すラベルを付けたいと思います。

カスタマーsliderUIを使用し、そのpaintThumbメソッドをオーバーライドすることで、同様のことを実現できます。これは必ずしもあなたが望むものではありませんが、これを試すことができます:

slider.setUI(new BasicSliderUI(slider) {
    public void paintThumb(Graphics g) {
        super.paintThumb(g);
        g.setColor(Color.RED);
        g.drawString(slider.getValue() + "", thumbRect.x, thumbRect.y + thumbRect.height);
    }
});
于 2012-01-17T13:03:24.910 に答える