This is a simple text clock.
See javax.swing.Timer for an explanation of how use this simple timer class.
In this example following swing components are used:
You can download, compile, run and test the application on your computer.
The latest version of JDK is needed to run this example code.
We have given the complete code of the example.
Following coding listing shows the complete code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
// TextClock.java -- Uses Timer, Calendar, JTextField.
// -- Fred Swartz, 1999-05-01, 2001-11-02
// Enhancements: center, leading zeros, uneditable, 12 hour, alarm, timer.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.Calendar; // only need this one class
////////////////////////////////////////////////////////////////// TextClock
public class TextClock {
//================================================================= main
public static void main(String[] args) {
JFrame clock = new TextClockWindow();
clock.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
clock.setVisible(true);
}//end main
}//endclass TextClock
//////////////////////////////////////////////////////////// TextClockWindow
class TextClockWindow extends JFrame {
//=================================================== instance variables
private JTextField timeField; // set by timer listener
//========================================================== constructor
public TextClockWindow() {
// Build the GUI - only one panel
timeField = new JTextField(6);
timeField.setFont(new Font("sansserif", Font.PLAIN, 48));
Container content = this.getContentPane();
content.setLayout(new FlowLayout());
content.add(timeField);
this.setTitle("Text Clock");
this.pack();
// Create a 1-second timer and action listener for it.
// Specify package because there are two Timer classes
javax.swing.Timer t = new javax.swing.Timer(1000,
new ActionListener() {
public void actionPerformed(ActionEvent e) {
Calendar now = Calendar.getInstance();
int h = now.get(Calendar.HOUR_OF_DAY);
int m = now.get(Calendar.MINUTE);
int s = now.get(Calendar.SECOND);
timeField.setText("" + h + ":" + m + ":" + s);
}
});
t.start(); // Start the timer
}//end constructor
}//endclass TextClock |