
package interfazgrafica10;

import java.awt.EventQueue;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.JSlider;
import javax.swing.border.TitledBorder;

public class InterfazGrafica10  extends JFrame {
 
    public InterfazGrafica10() {
        setSize(700,500);
        setTitle("JProgresBar combinado con JSlider");
        Componentes componentes = new Componentes();
        ubicarComponentes(componentes);
        inicializarPantalla(componentes);
        setVisible(true);
    }
 
    
    private void ubicarComponentes(Componentes componentes) {

        componentes.setjFrame(this);
        setLayout(null);
        GestorEventos gestorEventos = new GestorEventos(componentes);
        
        addWindowListener(gestorEventos);        // REGISTRO DE ESCUCHA DE EVENTOS DE VENTANA
                   // CONFIGURACIÓN JSlider
        componentes.setjSlider(new JSlider(JSlider.HORIZONTAL,0 ,250 ,125));
        componentes.getjSlider().setBounds(20, 140, 600, 48);
        componentes.getjSlider().setBorder(new TitledBorder("Dato numérico a establecer"));
        componentes.getjSlider().setPaintTicks(true);
        componentes.getjSlider().setMajorTickSpacing(20);
        componentes.getjSlider().setMinorTickSpacing(5);
        componentes.getjSlider().addChangeListener(gestorEventos);    // REGISTRO DE ESCUCHA DE EVENTO ChangeListener
        add(componentes.getjSlider());          
                   // CONFIGURACIÓN JProgressBar
        componentes.setjProgresBar(new JProgressBar());    
        componentes.getjProgresBar().setBounds(20, 300, 600, 30);
        componentes.getjProgresBar().setMinimum(0);
        componentes.getjProgresBar().setMaximum(250); 
        add(componentes.getjProgresBar());
                   // CONFIGURACIÓN JLabel
        componentes.setjLabel(new JLabel());
        componentes.getjLabel().setBounds(640, 160, 40, 20);
        add(componentes.getjLabel());         
                   // CONFIGURACIÓN JButton jVisualizaVentanaSecundaria
        JButton jButtonVisualizarVentanaModal = new JButton("Visualizar ventana modal");
        jButtonVisualizarVentanaModal.setBounds(220, 400, 180, 40);  
        jButtonVisualizarVentanaModal.addActionListener(gestorEventos);   // REGISTRO DE ESCUCHA DE EVENTO DE BOTON
        add(jButtonVisualizarVentanaModal);        
    }
    
    
    private void inicializarPantalla(Componentes componentes) {    
        componentes.getjLabel().setText(Integer.toString(componentes.getjSlider().getValue()));
        componentes.getjProgresBar().setValue(componentes.getjSlider().getValue());
    }
    
    
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
              @Override
              public void run() {
                 new InterfazGrafica10();
              }
           });  
    }        
}
