2016-03-28 9 views
0

Merhaba Saati görüntülemek için bir iş parçacığı yapmak istiyorum, ancak bu kodla alarmı ayarlamadan sonra yalnızca saatin çalışmasını sağlayabilirim, ancak alarm da çalışmadı. Ister buÖnce bir şey tıklatmadan Dişli Saat'i başlatmak ve alarm vermek için

public class ClockAlarm extends Thread{ 

private String txt; 
private JLabel Clock; 
ClockAlarm(JLabel lbl) { 
    this.Clock = lbl; 
} 

ClockAlarm(){ 
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 
} 
public void run() 
    { 
     while(true) 
     { 
      try 
      { 
       SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); 
       Date date = new Date(); 
       String s = sdf.format(date); 
       Thread.sleep(1000); 

       Clock.setText(s); 
      } 
      catch(Exception e){} 

     } 
} 

} 

Bu GUI (çalışma) saat olduğunu saatine

ayrılan alarmı olun, onun saati ile eşittir ve nerede bilmiyorum alarm doğrulama koymak için nereye Idk onun çalışma zamanında bunu başlatmak verebilecek myThread.start veya prosedürü koymak

public class GUI extends javax.swing.JFrame { 
     ClockAlarm myThread1; 
     String Alarm; 

     /** 
     * Creates new form GUI 
     */ 
     public GUI() { 
      initComponents(); 
     } 
     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
      // TODO add your handling code here: 
      if(jButton1.getText().equalsIgnoreCase("Set Alarm (hh:mm:ss)")){ 
       Alarm = jTextField1.getText(); 
      } 
      myThread1 = new ClockAlarm(jLabel1); 
      myThread1.start(); 

     }           

     private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {            
      // TODO add your handling code here: 

     }           

    public static void main(String args[]) { 

      java.awt.EventQueue.invokeLater(new Runnable() { 
       public void run() { 
        new GUI().setVisible(true); 

       } 

      }); 
     } 

     // Variables declaration - do not modify      
     private javax.swing.JButton jButton1; 
     private javax.swing.JLabel jLabel1; 
     private javax.swing.JPanel jPanel1; 
     private javax.swing.JTextField jTextField1; 
     // End of variables declaration     
    } 

cevap

0
public class GUI extends JFrame implements ActionListener{ 

    public GUI() { 
     jLabel1=new JLabel(); 
    } 



    @Override 
    public void actionPerformed(ActionEvent e) { 

     if(e.getSource()==jButton1) 
     { 
       new ClockThread(jLabel1).execute(); 
     } 

    } 

public static void main(String args[]) { 
     GUI gu=new GUI(); 
     gu.setVisible(true); 
    } 

} 

public class ClockThread extends SwingWorker<String, String> { 

private JLabel clock; 
private String msg; 

public ClockThread(JLabel clock) { 
    this.clock = clock; 
} 

@Override 
protected void done() { 
    try { 
     msg = get(); 
     if (SwingUtilities.isEventDispatchThread()) { 
      clock.setText(msg); 
     } 
    } catch (Exception e) { 
    } 
} 

@Override 
protected void process(List<String> res) { 
    super.process(res); 
    for (String result : res) { 
     if (SwingUtilities.isEventDispatchThread()) { 
      clock.setText(result); 
      clock.revalidate(); 
     } 
    } 
} 

@Override 
public String doInBackground() { 
    String s = ""; 
    while (true) { 
     try { 
      SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); 
      Date date = new Date(); 
      s = sdf.format(date); 
      Thread.sleep(1000); 
      publish(s); 
     } catch (Exception e) { 
      return s; 
     } 
    } 
} 
} 
İlgili konular