domingo, 12 de mayo de 2019

Creacion de alarma en java parte 3

Continuando con lo anterior...

La clase setAlarma se encargara de la construcción de una ventana en la se pueda seleccionar la hora, minuto y segundo de un respectivo dropdown.

Sin mas el codigo esta aquí.


---
import com.alarma.Principal;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;

public final class SetAlarma extends JFrame implements ActionListener {

    private JComboBox hora;
    private JComboBox minutos;
    private JComboBox segundos;
    Principal p;
    
    public SetAlarma(Principal p) {
        this.p = p;
        elements();
    }

    public void elements() {
        this.setTitle("Seteo de alarma");
        this.setSize(300, 100);
        this.setLayout(null);
        this.setResizable(false);
        this.setLocationRelativeTo(null);

        hora = new JComboBox();
        minutos = new JComboBox();
        segundos = new JComboBox();
        for (int i = 0; i < 24; i++) {
            if (i < 10) {
                hora.addItem("0" + i);
            } else {
                hora.addItem(i + "");
            }
        }
        for (int i = 0; i < 60; i++) {
            if (i < 10) {
                minutos.addItem("0" + i);
                segundos.addItem("0" + i);
            } else {
                minutos.addItem(i + "");
                segundos.addItem(i + "");
            }
        }
        hora.addActionListener(this);
        hora.setActionCommand("hora");
        minutos.addActionListener(this);
        minutos.setActionCommand("minuto");
        segundos.addActionListener(this);
        segundos.setActionCommand("segundo");
        if( p._hora>-1 ){
            String h = "";
            if( p._hora < 10 ){h = "0"+p._hora;}else{ h = p._hora + "";}
            hora.setSelectedItem(h);
        }
        if( p._minuto>-1 ){
            String m = "";
            if( p._minuto < 10 ){m = "0"+p._minuto;}else{ m = p._minuto + "";}
            minutos.setSelectedItem(m);
        }
        if( p._segundo>-1 ){
            String s = "";
            if( p._segundo < 10 ){s= "0"+p._segundo;}else{ s= p._segundo + "";}
            segundos.setSelectedItem(s);
        }
        hora.setBounds(5, 5, 50, 25);
        minutos.setBounds(60, 5, 50, 25);
        segundos.setBounds(115, 5, 50, 25);
        this.add(hora);
        this.add(minutos);
        this.add(segundos);

        this.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if( "hora".equals(e.getActionCommand() ) ){
            p._hora = Integer.parseInt( hora.getSelectedItem().toString() );
        }
        if( "minuto".equals(e.getActionCommand() ) ){
            p._minuto = Integer.parseInt( minutos.getSelectedItem().toString() );
        }
        if( "segundo".equals(e.getActionCommand() ) ){
            p._segundo = Integer.parseInt( segundos.getSelectedItem().toString() );
        }
    }

}

---

vallamos a la explicación

vamonos directo a la accion...
En la construccion de el cada uno de los elementos en esta ventana. creamos un ciclo para llenar dichos espacios, por ejemplo.  para la hora. creamos el ciclo que va de 0 a 23, para generar un horario extendido de 24 horas considerando las 12:00 pm como las 00:00 pm. con esto hay que espesificar que todo valor menor a 10 es necesario agregar un 0 al comienzo de la cadena. Por otro lado construimos otro ciclo, el cual ira del 0 al 59, para crear tanto los minutos como los segundos., de igual manera  los primeros numeros menores a 10 se les agrega un 0 al comienzo de la cadena.


Seguido de esto es necesrio validar si se tiene seteada una hora en particular para asi inicializar los componentes con un valor en espesifico.

Para finalizar se agregan los action listener a cada uno de estos componentes.

En el ActionEvent los distinguimos por el actionCommand que se agrego a cada uno... así al seleccionar un valor se setea el valor a cada correspondiente variable.

De esta manera quedan seteadas las variables correspondientes.


No te olvides de dejar tu comentario.

Si eres usuario de blogger. No te olvides de seguirme y asi poder finalizar esta aplicacion.

No hay comentarios:

Publicar un comentario