setLabelTable方法的问题,以自定义JSlider的标签

Hei*_*bug 2 java swing jslider

根据本教程,应该执行以下操作来自定义JSlider的标签:

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);
Run Code Online (Sandbox Code Playgroud)

实际上Eclipse抱怨setLabelTable想要的是Dictionary而不是HashTable(我正在使用sun sdk 1.6.0_25).错误如下:

JSlider类型中的方法setLabelTable(Dictionary)不适用于参数(Hashtable)

我在互联网上找到的所有例子都告诉我这样做.

所以有什么问题?

编辑:

我的问题是错的.这只是一个包含错误.看看我的答案.

Ser*_*huk 5

正如我刚刚评论的那样,Dictionary是HashTable的超级类,你可以把HashTable设置为setLabelTabel,但是如果eclipse显示这个错误,我们可以考虑两种情况:

  • 你没有使用java.util.Hashtable

  • 你没有使用javax.swing.JSlider

我认为第一个问题就是你的问题.