Alarme com Horas, comparar as horas para tocar som no momento que defino

3 respostas
Nelsonjahn

Não consigo implementar que a cada hora que eu quisesse que esteja salvo nas caixas de texto fizesse a comparação e tocasse o som.

Por ex. 7:20:00 da manhã, toca o som e 12:00:00 toca novamente e assim por diante.

esse é o código do som funciona perfeito.

import java.io.*;
import sun.audio.*;

public class Audio {
        public static void main(String[] args) 
    throws Exception        
       {
           
        String sonido = "C:/Alarm.wav";
        
        InputStream in = new FileInputStream(sonido);
        
        AudioStream audio = new AudioStream(in);
        AudioPlayer.player.start(audio);
       }

}

Abaixo o código do funcionamento da hora que funciona perfeitamente.

import java.util.Date;
import java.text.SimpleDateFormat;
public class data
{
    public String mes, dia, ano, dia_semana, hora;
    SimpleDateFormat horaformatada = new SimpleDateFormat("HH:mm:ss");
    
    public void le_hora()
    {
        Date horaAtual = new Date();
        hora = horaformatada.format(horaAtual);
        
    }
    
    public void le_data()
    {
        Date data = new Date();
      //  mes    = ""+data.getMonth();//0 a 11 
        dia    = ""+data.getDate(); 
        ano    = ""+(1900 + data.getYear());   
        //dia_semana = ""+data.getDay();

        
        switch(data.getDay())
        {
            case 0: dia_semana = "Domingo";break;
            case 1: dia_semana = "Segunda";break;
            case 2: dia_semana = "Terça";break;
            case 3: dia_semana = "Quarta";break;
            case 4: dia_semana = "Quinta";break;
            case 5: dia_semana = "Sexta";break;
            case 6: dia_semana = "Sábado";break;
        }
        
         switch(data.getMonth())
        {
           case 0: mes = "Janeiro";break; 
           case 1: mes = "Fevereiro";break;
           case 2: mes = "Março";break;
           case 3: mes = "Abril";break;
           case 4: mes = "Maio";break;
           case 5: mes = "Junho";break;
           case 6: mes = "Julho";break;
           case 7: mes = "Agosto";break;
           case 8: mes = "Setembro";break;
           case 9: mes = "Outubro";break;
           case 10: mes = "Novembro";break;
           case 11: mes = "Dezembro";break;
        }  
        
        
    }
}

e abaixo, o onde chamo a hora e a tela que funciona perfeitamente.

import utilitarios.data;
import utilitarios.Audio;
/**
 *
 * @author Nelson
 */
public class Tela extends javax.swing.JFrame {
  
        data mostra_data;
      
        
    /** Creates new form Tela */
    public Tela() {
        initComponents();
       
        txtInicioManha.setText("07:00:00");
        txtFimManha.setText("12:00:00");
        txtInicioTarde.setText("13:00:00");
        txtFimTarde.setText("16:48:00");
        
       String InManha = lblHora.getText();

      
     if (txtInicioManha.equals(InManha)){        
         Audio();         
         }
     else {
             
          }
      
        
        
        mostra_data = new data();
        mostra_data.le_data();
        lblData.setText("Dia:  "+mostra_data.dia+"  De  "+mostra_data.mes+"  De  "+mostra_data.ano);
       
         mostra_data.le_hora();
        lblHora.setText(mostra_data.hora);
        timer1.start();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        timer1 = new org.netbeans.examples.lib.timerbean.Timer();
        lblData = new javax.swing.JLabel();
        lblHora = new javax.swing.JLabel();
        txtInicioManha = new javax.swing.JTextField();
        txtFimManha = new javax.swing.JTextField();
        txtInicioTarde = new javax.swing.JTextField();
        txtFimTarde = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();

        timer1.addTimerListener(new org.netbeans.examples.lib.timerbean.TimerListener() {
            public void onTime(java.awt.event.ActionEvent evt) {
                timer1OnTime(evt);
            }
        });

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        lblData.setFont(lblData.getFont().deriveFont((float)30));
        lblData.setText("Data.:");

        lblHora.setFont(lblHora.getFont().deriveFont((float)180));
        lblHora.setForeground(new java.awt.Color(0, 0, 153));

        txtInicioManha.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        txtFimManha.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        txtInicioTarde.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        txtFimTarde.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        jLabel1.setText("INICIO TURNO ");

        jLabel2.setText("FIM TURNO");

        jLabel3.setText("INICIO TURNO");

        jLabel4.setText("FIM TURNO");

        jLabel5.setText("TURNO MANHÃ");

        jLabel6.setText("TURNOTARDE");

      
    private void timer1OnTime(java.awt.event.ActionEvent evt) {                              
        mostra_data.le_hora();
        lblHora.setText(mostra_data.hora);        
    }                             

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Tela().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel lblData;
    private javax.swing.JLabel lblHora;
    private org.netbeans.examples.lib.timerbean.Timer timer1;
    private javax.swing.JTextField txtFimManha;
    private javax.swing.JTextField txtFimTarde;
    private javax.swing.JTextField txtInicioManha;
    private javax.swing.JTextField txtInicioTarde;
    // End of variables declaration

  }

Como Fazer pra comparar a hora das caixas de texto e em cada horário toca o som.

3 Respostas

Nelsonjahn

Ninguém consegue me dar uma luz, acredito ainda no pessoal do guj, tem muito fera aqui.
Como sou novo nisso ainda não capto tudo.

igor_ks

Utilize o Quartz Scheduler para agendamento…

Nelsonjahn

Muito Obrigado Igor, pelo interesse de dar uma mão.
Voce teria como expor um exemplo.
se por exemplo, eu quero que toque o alarme as 7:00 e as 12:00 novamente, e assim por diante, afinal, eu poder colocar as horas em uma caixa de texto e poder definir a hora que eu quisesse. seria mais ou menos isso. que eu preciso.

String hora1 = "07:00";  
          String hora2 = "12:00";  
  
            Date d1 = formatter.parse(hora1);  
            Date d2 = formatter.parse(hora2);  
              
            if(d1.getTime()> d2.getTime()){  
               Audio(); 
            }  
            else{  
                 
            }
Criado 24 de novembro de 2013
Ultima resposta 10 de dez. de 2013
Respostas 3
Participantes 2