JSlider por defecto muestra una barra horizontal pero permite cambiar la orientación, ademas tiene algunos métodos encargados de poner el indicador al valor más cercado de la barra.
El código completo del ejemplo es el siguiente:
import javax.swing.*; 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{ /* se deben instanciar antes para poder usarlos en el método creado mas abajo y a la vez estaticos (static) también para poder ser usados en nuestro método creado. */ // ............................. static JSlider slider; static JLabel label; // .................................................................................................... public static void main(String[] args){ JFrame ventana = new JFrame("Ejemplo Slider!"); ventana.setSize(400, 400); JPanel panel = new JPanel(); slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 25); slider.setInverted(false); slider.setPaintTicks(true); slider.setMajorTickSpacing(25); slider.setMinorTickSpacing(5); slider.setPaintLabels(true); slider.addChangeListener(new MiAccion()); label = new JLabel("0"); 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); } } }
La explicación en detalle de los distintos detalles:
Constructor:
slider = new JSlider(JSlider.VERTICAL, 0, 100, 25):
Se inicializa el objeto del JSlider con nombre slider con los siguientes parámetro:
- JSlider.VERTICAL, este parámetro especifica la forma del nuestro slider si se crea en forma Vertical u Horizontal (JSlider.HORIZONTAL).
- 0, el segundo parámetro indica el tamaño mínimo de el JSlider.
- 100, el tercer parámetro indica el tamaño máximo de el JSlider.
- 25, el cuarto parámetro indica la posición en la cual se inicia el JSlider.
Métodos:
slider.setPaintLabels(true): Muestra una etiqueta con números designados en el método setMajorTickSpacing(25) el cual el numero 25 indica mostrar numero de 25 en 25 partiendo del minimo establecido en el JSlider.
slider.setInverted(false) : Recibe una variable Booleana (true o false), dependiendo cual sea su parámetro el JSlider tendrá su mínimo en un lado o el otro.
slider.setPaintTicks(true): Este método muestra Ticks (líneas) que delimitan se según los métodos setMajorTickSpacing() y setMinorTickSpacing().
slider.setMinorTickSpacing(5): Este método muestra Ticks (líneas), los cuales equivalen a avanzar de 5 en 5 en este caso (se necesita método setPaintTicks() con parámetro true).
slider.setMajorTickSpacing(25): Muestra Ticks mayores, con un numero al lado, de 25 en 25, en este caso, partiendo del valor mínimo dado al JSlider (si el método setPaintTicks() esta con parámetro false, solo se mostraran el numero correspondiente).
Fuente principal: http://javapiola.blogspot.com/2009/11/aprendiendo-lo-basico-de-jslider-y.html
Otras fuentes para Netbeans:
http://amanuva.blogspot.com/2016/02/009-uso-de-slider-deslizador-java-y.html
https://docs.oracle.com/javase/tutorial/uiswing/components/slider.html