문제

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 problem?

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;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top