我有一个JSlider的0分钟和10,000的最大值。我已经设定在1000主刻度标记。如果我现在画的标签,他们将显示为0,1000,2000,3000,4000,等等。我想显示将是0,1,2,3,4,5,等会是什么要完成这一任务的好办法?

有帮助吗?

解决方案

使用 JSlider.setLabelTable(字典)

修改

另外,你可以依靠预定义的标签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));          
    }

其他提示

您可以使用JSlider.setLabelTable(Dictionary)设置为你希望呈现不同的价值观特定标签; e.g。

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);

(基于先前的评论编辑。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top