Dates

                      Next      Java Source

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;

public class CalendarApplet extends Applet 
   implements Runnable, ActionListener {

   Thread runner;
   Calendar date, adate;
   JTextField adatefield, getfield, datefield, messages;
   JButton b[] = new JButton[8];
   JButton a[] = new JButton[8];   
   
   public void init () {
      adate = Calendar.getInstance();
      adate.setTimeZone(TimeZone.getTimeZone("America/New_York"));

      setLayout(new BorderLayout(20,20));
      Panel p = new Panel();
      p.setLayout(new GridLayout(9,1));
      p.add(new JLabel("Get", JLabel.CENTER));
      p.add(b[0] = new JButton("Date"));
      p.add(b[1] = new JButton("Year"));
      p.add(b[2] = new JButton("Month"));
      p.add(b[3] = new JButton("Day"));
      p.add(b[4] = new JButton("Hours"));
      p.add(b[5] = new JButton("Minutes"));
      p.add(b[6] = new JButton("Seconds"));
      p.add(b[7] = new JButton("Time"));
      add ("East",p);

      p = new Panel();
      p.setLayout(new GridLayout(9,1));
      p.add(new JLabel("Set", JLabel.CENTER));
      p.add(a[0] = new JButton("Date"));
      p.add(a[1] = new JButton("Year"));
      p.add(a[2] = new JButton("Month"));
      p.add(a[3] = new JButton("Day"));
      p.add(a[4] = new JButton("Hours"));
      p.add(a[5] = new JButton("Minutes"));
      p.add(a[6] = new JButton("Seconds"));
      p.add(a[7] = new JButton("Time"));
      add ("West",p);
      
      p = new Panel();
      p.setLayout(new GridLayout(11,1));
      p.add(new JLabel("Date Methods", JLabel.CENTER));
      p.add(new JLabel());      
      p.add(datefield = new JTextField());
      p.add(new JLabel("Current Date & Time", JLabel.CENTER));
      p.add(adatefield = new JTextField());
      p.add(new JLabel("Made Up Date", JLabel.CENTER));
      p.add(getfield = new JTextField());
      p.add(new JLabel("Get Field", JLabel.CENTER));
      p.add(messages = new JTextField());
      p.add(new JLabel("Messages", JLabel.CENTER));
      p.add(new JLabel());      
      add ("Center", p);
      
      adatefield.setEditable(false);
      adatefield.setBackground(Color.white);
      datefield.setEditable(false);
      datefield.setBackground(Color.white);

      for (int i=0 ; i < 8 ; i++) {
         a[i].addActionListener(this);
         b[i].addActionListener(this);
      }
      
      runner = new Thread(this);
      runner.start();
      showDate(adate, adatefield);
   }
   
   public void showDate(Calendar date, JTextField text) {
      if (date == null) return;
      String month = String.valueOf(date.get(Calendar.MONTH));
      String day = String.valueOf(date.get(Calendar.DAY_OF_MONTH));
      String year = String.valueOf(date.get(Calendar.YEAR));
      String hours = String.valueOf(date.get(Calendar.HOUR_OF_DAY));
      String mins = String.valueOf(date.get(Calendar.MINUTE));
      String secs = String.valueOf(date.get(Calendar.SECOND));
      text.setText(month+"/"+day+"/"+year+" "+hours+":"+mins+"."+secs);
   }
   
   public void run () {
      while (true) {
         try { runner.sleep (1000); } catch (Exception e) { }
	 date = Calendar.getInstance();
	 date.setTimeZone(TimeZone.getTimeZone("America/New_York"));
         showDate(date, datefield);
      }
   }
   
   public void actionPerformed (ActionEvent e) {
      try {
         if (e.getSource() == b[0])
            getfield.setText(""+date.get(Calendar.DATE));
         else
         if (e.getSource() == b[1])
            getfield.setText(""+date.get(Calendar.YEAR));
         else
         if (e.getSource() == b[2])
            getfield.setText(""+date.get(Calendar.MONTH));
         else
         if (e.getSource() == b[3])
            getfield.setText(""+date.get(Calendar.DAY_OF_MONTH));
         else
         if (e.getSource() == b[4])
            getfield.setText(""+date.get(Calendar.HOUR));
         else
         if (e.getSource() == b[5])
            getfield.setText(""+date.get(Calendar.MINUTE));
         else
         if (e.getSource() == b[6])
            getfield.setText(""+date.get(Calendar.SECOND));
         else
         if (e.getSource() == b[6])
            getfield.setText(""+date.getTime());
         else
         if (e.getSource() == a[0]) {
            adate.set(Calendar.DATE,Integer.parseInt(getfield.getText()));
            showDate(adate, adatefield);
         }
         else
         if (e.getSource() == a[1]) {
            adate.set(Calendar.YEAR,Integer.parseInt(getfield.getText()));
            showDate(adate, adatefield);
         }
         else
         if (e.getSource() == a[2]) {
            adate.set(Calendar.MONTH,Integer.parseInt(getfield.getText()));
            showDate(adate, adatefield);
         }
         else
         if (e.getSource() == a[3]) {
            adate = Calendar.getInstance();
	    adate.setTimeZone(TimeZone.getTimeZone("America/New_York"));
            showDate(adate, adatefield);
         }
         else
         if (e.getSource() == a[4]) {
            adate.set(Calendar.HOUR,Integer.parseInt(getfield.getText()));
            showDate(adate, adatefield);
         }
         else
         if (e.getSource() == a[5]) {
            adate.set(Calendar.MINUTE,Integer.parseInt(getfield.getText()));
            showDate(adate, adatefield);
         }
         else
         if (e.getSource() == a[6]) {
            adate.set(Calendar.SECOND,Integer.parseInt(getfield.getText()));
            showDate(adate, adatefield);
         }
      }
      catch (Exception exc) { messages.setText(String.valueOf(exc));  }
   }  
}