Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Se utiliza un JSlider para permitir que el usuario introduzca un valor numrico limitado por
una valor mximo y un valor mnimo. Mediante la utilizacin de un Slider en vez de text field,
se eliminan errores de entrada.
Aqu tenemos una imagen de una aplicacin que utiliza un Slider para controlar la velocidad de
una animacin.
Intenta esto:
1.
2.
Por defecto, el espacio para las marcas mayores y menores es cero. Para ver estas marcas,
debemos especificar el espaciado de los ticks mayor o menor (o ambos) a un valor distinto de
cero y llamar a setPaintTicks(true) (llamar slo a setPaintTicks(true) no es suficiente).
Para salidas estndard, las etiquetas numricas en la posicin marcas mayores seleccionan el
mayor espaciado entre marcas, luego se llama setPaintLabels(true). El programa de
ejemplo proporciona la etiqueta para sus deslizadores de esta forma. Sin embargo, las
etiquetas del Slider son altamente configurables. Puedes ver un ejemplo en Proporcionar
Etiquetas para Deslizadores.
Cuando se mueve el deslizador, se llama al mtodo stateChanged del ChangeListener del
deslizador, cambiando la velocidad de la animacin.
1.
2.
Este cdigo crea explcitamente un Hashtable y lo rellena con los valores de las
etiquetas y sus posiciones. Cada valor de etiqueta debe ser unComponent y en este
programa, son simples etiquetas de texto. Tambin podemos utilizar etiquetas con
iconos. Si queremos etiquetas numricas posicionadas a intervalor especficos,
podemos utilizar el mtodo createStandardLabels de JSlider.
El API Slider
Las siguiente tablas listan los mtodos y constructores ms utilizados de JSlider. Otros
mtodos interesantes son definidos por las clases JComponent yComponent.
Mtodo
void setValue(int)
int getValue()
void
setOrientation(int)
int getOrientation()
Propsito
Seleciona u obtiene el valor actual del Slider. El marcador del
deslizador est en esta posicin.
Seleciona u obtiene la orientacin del Slider. Los posibles valores son
JSlider.HORIZONTAL o JSlider.VERTICAL
void
Seleciona u obtiene si el mximo se muestra a la izquierda en un
setInverted(boolean) deslizador horizontal o abajo en uno vertical, por lo tanto invierte el
boolean getInverted() rango del deslizador.
void setMinimum(int)
int getMinimum()
Seleciona u obtiene los valores mximos o mnimos del deslizador.
void setMaximum(int) Juntos selecionan u obtienen el rango del deslizador.
int getMaximum()
void
setMajorTickSpacing(i
nt)
int
getMajorTickSpacing(
)
void
setLabelTable(Diction
ary)
Dictionary
getLabelTable()
void
setPaintLabels(boolea Seleciona u obtiene si se dibujan las etiquetas de un deslizador. Las
n)
etiquetas se seleccionan con setLabelTable o configurando el
boolean
espaciado entre marcas mayores.
getPaintLabels()
Primero construyamos una clase que llamaremos JSlider, e importamos todas las
clases que usaremos:
_ javax.swing.*
_javax.swing.event.*
_java.awt.*
_java.awt.event.*
Nota: tambin importaremos la clase JSlider y JFrame aunque estas vengan en
javax.swing.* y javax.swing.* respectivamente, por si a alguien le causa problemas
(como a nosotros). Todo esto debiera quedar as:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JSlider;
import javax.swing.JFrame;
public class Slider{
public static void main(String[] args) {
//cdigo
}
Ahora en la seccin de //cdigo se realizara todo lo que tenga que ver con nuestro
JSlider, y los detalles para poder verlos en una ventana como en la imagen anterior.
Crearemos rpidamente un JFrame, un Jpanel para poder pegar y visualizar
nuestro JSlider (Como se dijo antes, solo explicaremos lo que tenga q ver con el
JSlider).
//cdigo:
JFrame ventana = new JFrame("COme On!!");
ventana.setSize(400, 400);
JPanel panel = new JPanel();
//Crearemos nuestro JSlider a continuacin, cada lnea con una breve descripcin,
luego se explicara con ms //detalles
slider = new JSlider(JSlider.VERTICAL, 0, 100, 25); /*(posicin vertical, comienza,
termina, donde comienza al iniciar programa)*/
slider.setInverted(false); //se invierte el relleno del JSlider (desde donde comienza)
slider.setPaintTicks(true); //las rayitas que marcan los nmeros
slider.setMajorTickSpacing(25); // de cuanto en cuanto los nmeros en el slider
slider.setMinorTickSpacing(5); //las rayitas de cuanto en cuanto
slider.setPaintLabels(true); //si se ve los nmeros del slider
slider.addChangeListener(new MiAccion()); //Agrega un escuchador al slider creado,
lo cual se usara luego
/*Ahora, aunque no pertenece a la clase JSlider, crearemos un JLabel en el cul se
mostrara el numero en el cual se encuentre el slider en ese momento*/
label = new JLabel("LEts Go!!"); /*Crea un JLabel el cual muestra el numero en el
que esta el JSlider y de inicia con la frase LEts Go!! */
Explicaremos un poco ms detallado el constructor presente y cada mtodo (el
mtodo se encontrara en cursiva):
Constructor:
slider = new JSlider(JSlider.VERTICAL, 0, 100, 25): Se inicializa el objeto del JSlider
con nombre slider con los siguientes parmetro: _JSlider.VERTICAL, este parmetro
especifica la forma del nuestro slider si se crea en forma Vertical u Horizontal
(JSlider.HORIZONTAL).
Luego de haber visto por partes nuestro cdigo vamos a ajustar nuestros ltimos
detalles en el cdigo completo.
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JSlider;
import javax.swing.JFrame;
public class Slider{
static JSlider slider; /*se deben instanciar antes para poder usarlos en el mtodo
creado mas abajo */
static JLabel label; /*y a la vez estaticos (static) tambin para poder ser usados en
nuestro mtodo creado. */
public static void main(String[] args){
JFrame ventana = new JFrame("COme On!!");
ventana.setSize(400, 400);
JPanel panel = new JPanel();
slider = new JSlider(JSlider.VERTICAL, 0, 100, 25);
slider.setInverted(false);
slider.setPaintTicks(true); slider.setMajorTickSpacing(25);slider.setMinorTickSp
acing(5); slider.setPaintLabels(true);
slider.addChangeListener(new MiAccion());
label = new JLabel("LEts Go!!");
panel.add(label);
panel.add(slider);
ventana.add(panel);
ventana.setVisible(true);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static class MiAccion implements ChangeListener{
public void stateChanged(ChangeEvent e){
int evaluo = slider.getValue();
String nose = Integer.toString(evaluo);
label.setText(nose);
}
}
}
Luego de completo nuestro cdigo, solo queda por parte de ustedes ejercitar, pueden
ir cambiando las variables, y ahora les dejaremosla API del JSlider, donde podrn ver
todos los mtodos e ir implementando sus propias ideas.