jsliderのレーブルをカスタマイズするためのsetlabeltableメソッドの問題

StackOverflow https://stackoverflow.com/questions/6363442

  •  28-10-2019
  •  | 
  •  

質問

これによれば チュートリアル, 、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);

実際、Eclipseは、SetLabeltableがハッシュテーブルではなく辞書を望んでいると不満を述べています(Sun SDK 1.6.0_25を使用しています)。エラーは次のとおりです。

タイプjsliderのメソッドsetlabeltable(辞書)は、引数に適用されません(ハッシュテーブル)

私がインターネット上で見つけたすべての例は、私にそのようにするように言っています。

だから問題は何ですか?

編集:

私の質問は間違っていました。それは単なるエラーを含む単なるものでした。私の答えを見てください。

役に立ちましたか?

解決

コメントしただけで、辞書はハッシュテーブルのsupecrassであり、ハッシュテーブルsetlabeltabelを置くことができますが、Eclipseがこのエラーを示した場合は、2つのケースについて考えることができます。

  • java.util.hashtableを使用していません

  • javax.swing.jsliderを使用していません

私は最初はあなたの問題がそれを追いかけるだけだと思います。

他のヒント

私は絶対に確信していませんが、それは単に置き換えるために働くかもしれません HashtableDictionary, 、これは明らかに方法が望んでいるものです。

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

ああ.. @nintoと@sorcerorの両方に感謝します。あなたが正しいです。それはインクルードエラーでした:

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

それ以外の :

import java.util.Hashtable;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top