Crear una barra de valores utilizando JSlider no tiene algún sentido, pues esta no tiene funcionalidad por defecto. Si usted desea conocer el valor seleccionado, deberá gestionar eventos.

Al gestionar eventos usted podrá obtener los valores cuando el usuario se encuentre manipulado el JSlider.

Para comenzar, primero debe saber que existe una interfaz nombrada ChangeListener, permite saber el cambio de estado de la barra.

Esta interfaz es realmente sencilla, solo cuenta con un metodo llamado:

stateChanged(ChangeEvent e); se activa cuando el usuario comienza a mover la flecha del JSlider, gracias a esto podemos obtener el valor seleccionado.

Teniendo en claro esta función de la interfaz, ahora realizaremos un ejemplo sencillo. A continuación explicaremos los requisitos del ejemplo:

Escribir un programa que tenga una barra de valores del 0 al 100, el valor seleccionado deberá escribirse en un botón.

package eventosjslider;

import javax.swing.JFrame;

public class EventosJSlider {

    public static void main(String[] args) {
        PanelSlider panel = new PanelSlider();
        JFrame f = new JFrame("Evento en JSlider");
        f.add(panel);
        f.setBounds(150, 100, 300, 400);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
    
}

En nuestro panel, hemos agregado nuestro JSlider y JButton, para ello utilizamos el administrador de diseño GridLayot para dividir el contenido en dos columnas. Ademas, creamos una clase interna anónima para gestionar los eventos de JSlider.

package eventosjslider;

import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class PanelSlider extends javax.swing.JPanel {

    public PanelSlider() {
        initComponents();
        barraValores.addChangeListener(new ControladorJSlider());
    }
    
    private class ControladorJSlider implements ChangeListener {

        @Override
        public void stateChanged(ChangeEvent e) {
            botonValores.setText("Valor: "  + barraValores.getValue());
        }
        
    }

    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        barraValores = new javax.swing.JSlider();
        botonValores = new javax.swing.JButton();

        setLayout(new java.awt.GridLayout(1, 2));

        barraValores.setMajorTickSpacing(10);
        barraValores.setMinorTickSpacing(1);
        barraValores.setOrientation(javax.swing.JSlider.VERTICAL);
        barraValores.setPaintLabels(true);
        barraValores.setPaintTicks(true);
        add(barraValores);

        botonValores.setText("Valor 50");
        add(botonValores);
    }// </editor-fold>                        


    // Variables declaration - do not modify                     
    private javax.swing.JSlider barraValores;
    private javax.swing.JButton botonValores;
    // End of variables declaration                   
}

Como la clase ControladorJSlider se encargara de gestionar los eventos, esta debe implementar la interfaz ChangeListener. Posteriormente debemos registrar el evento a nuestro JSlider, esto podemos hacerlo mediante el metodo:

addChangeListener(ChangeListener object); este recibe por parametro un objeto de tipo ChangeListener, por este motivo le pasamos por parametro la clase ControladorJSlider.

Cuando tu desplaces la flecha de la barra el valor del botón se actualiza de forma automática, como se muestra en la siguiente imagen:

Esto es posible, gracias al evento utilizado en nuestra barra. El ejemplo realizado es muy sencillo. Sin embargo, tu puedes crear cosas mas complejas mediante los valores obtenidos. Otro ejemplo seria: modificar el factor de transparencia de un dibujo utilizando Graphics2D.