Pregunta

De acuerdo a esto tutorial, uno debe hacer lo siguiente para personalizar las Lables de 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);

En realidad, Eclipse se queja de que SetLabeltable Want's A Dictionary no es un hashtable (estoy usando Sun SDK 1.6.0_25). El error es el siguiente:

El método setLabeltable (diccionario) en el tipo jslider no es aplicable para los argumentos (hashtable)

Todos los ejemplos que encontré en Internet me dicen que haga eso.

¿Entonces, cuál es el problema?

EDITAR:

Mi pregunta fue incorrecta. Fue solo un error de incluido. Eche un vistazo a mi respuesta.

¿Fue útil?

Solución

Como acabo de comentar, el diccionario es la copa de hashtable y puede colocar setlabeltabel hashtable, pero si Eclipse le muestra este error, podemos pensar en dos casos:

  • no estás usando java.util.hashtable

  • no estás usando javax.swing.jslider

Creo que el primero es tu problema, simplemente cáselo.

Otros consejos

No estoy absolutamente seguro, pero podría funcionar simplemente reemplazar Hashtable con Dictionary, que aparentemente es lo que el método quiere.

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 ... gracias a los dos @ninto y @sorceror. Tienes razón. Fue un error de inclusión:

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

en vez de :

import java.util.Hashtable;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top