1 19 20 package examples.clock; 21 22 import java.util.Date ; 23 import java.util.GregorianCalendar ; 24 import java.util.Calendar ; 25 import java.text.SimpleDateFormat ; 26 import javax.swing.JOptionPane ; 27 28 public class ClockFrame extends javax.swing.JFrame { 29 30 31 public ClockFrame() { 32 initComponents (); 33 pack (); 34 } 35 36 41 private void initComponents() { tmrSeconds = new org.netbeans.examples.lib.timerbean.Timer(); 43 jlblCurrentTime = new javax.swing.JLabel (); 44 jPanel1 = new javax.swing.JPanel (); 45 jlblNewTime = new javax.swing.JLabel (); 46 jtfNewTime = new javax.swing.JTextField (); 47 jbtnNewTime = new javax.swing.JButton (); 48 jPanel2 = new javax.swing.JPanel (); 49 jlblNewFormat = new javax.swing.JLabel (); 50 jtfNewTimeFormat = new javax.swing.JTextField (); 51 jbtnNewTimeFormat = new javax.swing.JButton (); 52 53 tmrSeconds.addTimerListener(new org.netbeans.examples.lib.timerbean.TimerListener() { 54 public void onTime(java.awt.event.ActionEvent evt) { 55 tmrSecondsOnTime(evt); 56 } 57 }); 58 59 addWindowListener(new java.awt.event.WindowAdapter () { 60 public void windowClosing(java.awt.event.WindowEvent evt) { 61 exitForm(evt); 62 } 63 }); 64 65 jlblCurrentTime.setText("00:00:00"); 66 jlblCurrentTime.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 67 jlblCurrentTime.setFont(new java.awt.Font ("Dialog", 1, 36)); 68 getContentPane().add(jlblCurrentTime, java.awt.BorderLayout.CENTER); 69 70 jPanel1.setLayout(new java.awt.GridLayout (1, 0)); 71 72 jlblNewTime.setText("New Time"); 73 jlblNewTime.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 74 jPanel1.add(jlblNewTime); 75 76 jtfNewTime.setText("00:00:00"); 77 jPanel1.add(jtfNewTime); 78 79 jbtnNewTime.setText("Set New Time"); 80 jbtnNewTime.addActionListener(new java.awt.event.ActionListener () { 81 public void actionPerformed(java.awt.event.ActionEvent evt) { 82 jbtnSetNewTimeClicked(evt); 83 } 84 }); 85 86 jPanel1.add(jbtnNewTime); 87 88 getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH); 89 90 jPanel2.setLayout(new java.awt.GridLayout (1, 0)); 91 92 jlblNewFormat.setText("Time Format"); 93 jlblNewFormat.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 94 jPanel2.add(jlblNewFormat); 95 96 jtfNewTimeFormat.setText("hh:mm:ss"); 97 jPanel2.add(jtfNewTimeFormat); 98 99 jbtnNewTimeFormat.setText("Set New Time Format"); 100 jbtnNewTimeFormat.addActionListener(new java.awt.event.ActionListener () { 101 public void actionPerformed(java.awt.event.ActionEvent evt) { 102 jbtnNewTimeFormatActionClicked(evt); 103 } 104 }); 105 106 jPanel2.add(jbtnNewTimeFormat); 107 108 getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH); 109 110 } 112 private void jbtnNewTimeFormatActionClicked (java.awt.event.ActionEvent evt) { String timeFormat = jtfNewTimeFormat.getText(); 114 formatter = new SimpleDateFormat (timeFormat); 115 } 117 private void jbtnSetNewTimeClicked (java.awt.event.ActionEvent evt) { try { 119 String timeStr = jtfNewTime.getText(); 120 gCal.setTime(formatter.parse(timeStr)); 121 } catch (java.text.ParseException e) { 122 JOptionPane.showMessageDialog(this, "Invalid date format", "I don't understand your date format.", JOptionPane.ERROR_MESSAGE); 123 } 124 } 126 private void tmrSecondsOnTime (java.awt.event.ActionEvent evt) { gCal.add(Calendar.SECOND,1); 128 String timeTxt = formatter.format(gCal.getTime()); 129 if (jlblCurrentTime != null) 130 jlblCurrentTime.setText(timeTxt); 131 } 133 134 private void exitForm(java.awt.event.WindowEvent evt) { System.exit (0); 136 } 138 139 private javax.swing.JButton jbtnNewTime; 141 private javax.swing.JButton jbtnNewTimeFormat; 142 private javax.swing.JTextField jtfNewTime; 143 private javax.swing.JLabel jlblNewTime; 144 private javax.swing.JLabel jlblNewFormat; 145 private javax.swing.JLabel jlblCurrentTime; 146 private org.netbeans.examples.lib.timerbean.Timer tmrSeconds; 147 private javax.swing.JTextField jtfNewTimeFormat; 148 private javax.swing.JPanel jPanel2; 149 private javax.swing.JPanel jPanel1; 150 private GregorianCalendar gCal = new GregorianCalendar (); 152 private String timeFormat = "hh:mm:ss"; 153 private SimpleDateFormat formatter = new SimpleDateFormat (timeFormat); 154 155 156 public static void main(java.lang.String [] args) { 157 new ClockFrame ().show (); 158 } 159 160 } 161 | Popular Tags |