3

最小値が 0 で最大値が 10,000 の JSlider があります。主な目盛りを 1,000 に設定しています。ここでラベルをペイントすると、0、1000、2000、3000、4000 などと表示されます。表示したいのは、0、1、2、3、4、5 などです。このタスクを達成するための良い方法はありますか?

4

2 に答える 2

2

JSlider.setLabelTable(Dictionary) の使用

編集

別の方法として、定義済みのラベル UI を利用して、ラベル テキストを変更することもできます。

    Enumeration e = jSlider.getLabelTable().keys();

    while (e.hasMoreElements()) {
        Integer i = (Integer) e.nextElement();
        JLabel label = (JLabel) jSlider.getLabelTable().get(i);
        label.setText(String.valueOf(i / 1000));          
    }
于 2009-07-14T14:15:41.190 に答える
1

JSlider.setLabelTable(Dictionary)異なる方法でレンダリングしたい値に特定のラベルを設定するために使用できます。例えば

JSlider slider = ...

Dictionary dict = new Hashtable();
for (int i=0; i<=10000; i += 1000) {  
  dict.put(i, new JLabel(Integer.toString(i / 1000)));
}

slider.setLabelTable(dict);

(以前のコメントに基づいて編集されました。)

于 2009-07-14T14:12:42.863 に答える