开发者

problem with setLabelTable method to customize JSlider's lables

开发者 https://www.devze.com 2023-03-13 11:30 出处:网络
According to this tutorial, one should do the following to customize JSlider\'s lables: JSlider framesPerSecond = new JSlider(JSlider.VERTICAL,

According to this tutorial, one should do the following to customize JSlider's lables:

JSlider framesPerSecond = new JSlider(JSlider.VERTICAL,
                                      FPS_MIN, FPS_MAX, FPS_INIT);
framesPerSecond.addChangeListener(this);
framesPerSecond.setMajorTickSpacing(10);
framesPerSecond.setPaintTicks(true);

//Create the label table
Hashtable labelTable = new Hashtable();
labelTable.put( new Integer( 0 ), new JLabel("Stop") );
labelTable.put( new Integer( FPS_MAX/10 ), new JLabel("Slow") );
labelTable.put( new Integer( FPS_MAX ), new JLabel("Fast") );
framesPerSecond.setLabelTable( labelTable ); //ERROR

framesPerSecond.setPaintLabels(true);

Actually Eclipse complain that setLabelTable want's a Dictionary not a HashTable ( I'm using sun sdk 1.6.0_25). The error is the following:

The method setLabelTable(Dictionary) in the type JSlider is not applicable for the arguments (Hashtable)

All the examples I found over Internet tells me to do like that.

So, what's the pro开发者_如何学编程blem?

EDIT:

my question was wrong. It was just an include error. Have a look at my answer.


As I just commented Dictionary is supperclass of HashTable and you can put HashTable setLabelTabel, but if eclipse shows you this error we can think about two cases :

  • you are not using java.util.Hashtable

  • you are not using javax.swing.JSlider

I think the first is your problem just chek it.


I'm not absolutely sure, but it might work to simply replace Hashtable with Dictionary, which apparently is what the method wants.

Dictionary labelTable = new Dictionary();
labelTable.put(new Integer(0), new JLabel("Stop"));
labelTable.put(new Integer(FPS_MAX / 10), new JLabel("Slow"));
labelTable.put(new Integer(FPS_MAX), new JLabel("Fast"));
framesPerSecond.setLabelTabel(labelTable);


Oh..thank you both @Ninto and @Sorceror. You are right. It was an include error:

import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable;

instead of :

import java.util.Hashtable;
0

精彩评论

暂无评论...
验证码 换一张
取 消