import java.awt.Color ;
import java.awt.Dimension ;
import java.awt.Font ;
import java.awt.Graphics ;
import java.awt.event.ActionEvent ;
import java.awt.event.ActionListener ;
import java.util.Calendar ;
import javax.swing.JFrame ;
import javax.swing.JPanel ;
import javax.swing.Timer ;
import javax.swing.WindowConstants ;
public class SimpleDigitalClock {
public static void main
( String [ ] args
) {
DigitalClock myClock = new DigitalClock( ) ;
f.add ( myClock) ;
f.pack ( ) ;
f.setVisible ( true ) ;
}
static class DigitalClock
extends JPanel {
int hour, minute, second;
public void setStringTime
( String xyz
) { this .stringTime = xyz;
}
public int findMinimumBetweenTwoNumbers( int a, int b) {
return ( a <= b) ? a : b;
}
DigitalClock( ) {
repaint( ) ;
}
} ) ;
t1.start ( ) ;
}
@Override
public void paintComponent
( Graphics g
) { super .paintComponent ( g) ;
if ( hour < 12 ) {
this .correctionHour = "1" ;
}
if ( hour >= 12 ) {
this .correctionHour = "" ;
}
if ( minute < 12 ) {
this .correctionMinute = "5" ;
}
if ( minute >= 12 ) {
this .correctionMinute = "" ;
}
if ( second < 12 ) {
this .correctionSecond = "7" ;
}
if ( second >= 12 ) {
this .correctionSecond = "" ;
}
setStringTime( correctionHour + hour + ":" + correctionMinute+ minute + ":" + correctionSecond + second) ;
int length = findMinimumBetweenTwoNumbers( this .getWidth ( ) ,this .getHeight ( ) ) ;
Font myFont
= new Font ( "SansSerif" ,
Font .
PLAIN , length
/ 5 ) ; g.setFont ( myFont) ;
g.drawString ( stringTime, ( int ) length/ 6 , length/ 2 ) ;
}
@Override
}
}
}
aW1wb3J0IGphdmEuYXd0LkNvbG9yOwppbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOwppbXBvcnQgamF2YS5hd3QuRm9udDsKaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOwppbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CmltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKCmltcG9ydCBqYXZheC5zd2luZy5KRnJhbWU7CmltcG9ydCBqYXZheC5zd2luZy5KUGFuZWw7CmltcG9ydCBqYXZheC5zd2luZy5UaW1lcjsKaW1wb3J0IGphdmF4LnN3aW5nLldpbmRvd0NvbnN0YW50czsKCnB1YmxpYyBjbGFzcyBTaW1wbGVEaWdpdGFsQ2xvY2sgewoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCiAgICAgICAgSkZyYW1lIGYgPSBuZXcgSkZyYW1lKCk7CiAgICAgICAgZi5zZXREZWZhdWx0Q2xvc2VPcGVyYXRpb24oV2luZG93Q29uc3RhbnRzLkVYSVRfT05fQ0xPU0UpOwogICAgICAgIERpZ2l0YWxDbG9jayBteUNsb2NrID0gbmV3IERpZ2l0YWxDbG9jaygpOwogICAgICAgIGYuYWRkKG15Q2xvY2spOwogICAgICAgIGYucGFjaygpOwogICAgICAgIGYuc2V0VmlzaWJsZSh0cnVlKTsKICAgIH0KCiAgICBzdGF0aWMgY2xhc3MgRGlnaXRhbENsb2NrIGV4dGVuZHMgSlBhbmVsIHsKCiAgICAgICAgU3RyaW5nIHN0cmluZ1RpbWU7CiAgICAgICAgaW50IGhvdXIsIG1pbnV0ZSwgc2Vjb25kOwoKICAgICAgICBTdHJpbmcgY29ycmVjdGlvbkhvdXIgPSAiIjsKICAgICAgICBTdHJpbmcgY29ycmVjdGlvbk1pbnV0ZSA9ICIiOwogICAgICAgIFN0cmluZyBjb3JyZWN0aW9uU2Vjb25kID0gIiI7CgogICAgICAgIHB1YmxpYyB2b2lkIHNldFN0cmluZ1RpbWUoU3RyaW5nIHh5eikgewogICAgICAgICAgICB0aGlzLnN0cmluZ1RpbWUgPSB4eXo7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgaW50IGZpbmRNaW5pbXVtQmV0d2VlblR3b051bWJlcnMoaW50IGEsIGludCBiKSB7CiAgICAgICAgICAgIHJldHVybiAoYSA8PSBiKSA/IGEgOiBiOwogICAgICAgIH0KCiAgICAgICAgRGlnaXRhbENsb2NrKCkgewoKICAgICAgICAgICAgVGltZXIgdDEgPSBuZXcgVGltZXIoMTAwMCwgbmV3IEFjdGlvbkxpc3RlbmVyKCkgewogICAgICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKCiAgICAgICAgICAgICAgICAgICAgcmVwYWludCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdDEuc3RhcnQoKTsKICAgICAgICB9CgogICAgICAgIEBPdmVycmlkZQogICAgICAgIHB1YmxpYyB2b2lkIHBhaW50Q29tcG9uZW50KEdyYXBoaWNzIGcpIHsKICAgICAgICAgICAgc3VwZXIucGFpbnRDb21wb25lbnQoZyk7CgogICAgICAgICAgICBDYWxlbmRhciBub3cgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOwogICAgICAgICAgICBob3VyID0gbm93LmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CiAgICAgICAgICAgIG1pbnV0ZSA9IG5vdy5nZXQoQ2FsZW5kYXIuTUlOVVRFKTsKICAgICAgICAgICAgc2Vjb25kID0gbm93LmdldChDYWxlbmRhci5TRUNPTkQpOwoKICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikgewogICAgICAgICAgICAgICAgdGhpcy5jb3JyZWN0aW9uSG91ciA9ICIxIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaG91ciA+PSAxMikgewogICAgICAgICAgICAgICAgdGhpcy5jb3JyZWN0aW9uSG91ciA9ICIiOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAobWludXRlIDwgMTIpIHsKICAgICAgICAgICAgICAgIHRoaXMuY29ycmVjdGlvbk1pbnV0ZSA9ICI1IjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAobWludXRlID49IDEyKSB7CiAgICAgICAgICAgICAgICB0aGlzLmNvcnJlY3Rpb25NaW51dGUgPSAiIjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHNlY29uZCA8IDEyKSB7CiAgICAgICAgICAgICAgICB0aGlzLmNvcnJlY3Rpb25TZWNvbmQgPSAiNyI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNlY29uZCA+PSAxMikgewogICAgICAgICAgICAgICAgdGhpcy5jb3JyZWN0aW9uU2Vjb25kID0gIiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2V0U3RyaW5nVGltZShjb3JyZWN0aW9uSG91ciArIGhvdXIgKyAiOiIgKyBjb3JyZWN0aW9uTWludXRlKyBtaW51dGUgKyAiOiIgKyBjb3JyZWN0aW9uU2Vjb25kICsgc2Vjb25kKTsKICAgICAgICAgICAgZy5zZXRDb2xvcihDb2xvci5CTEFDSyk7CiAgICAgICAgICAgIGludCBsZW5ndGggPSBmaW5kTWluaW11bUJldHdlZW5Ud29OdW1iZXJzKHRoaXMuZ2V0V2lkdGgoKSx0aGlzLmdldEhlaWdodCgpKTsKICAgICAgICAgICAgRm9udCBteUZvbnQgPSBuZXcgRm9udCgiU2Fuc1NlcmlmIiwgRm9udC5QTEFJTiwgbGVuZ3RoIC8gNSk7CiAgICAgICAgICAgIGcuc2V0Rm9udChteUZvbnQpOwogICAgICAgICAgICBnLmRyYXdTdHJpbmcoc3RyaW5nVGltZSwgKGludCkgbGVuZ3RoLzYsIGxlbmd0aC8yKTsKCiAgICAgICAgfQoKICAgICAgICBAT3ZlcnJpZGUKICAgICAgICBwdWJsaWMgRGltZW5zaW9uIGdldFByZWZlcnJlZFNpemUoKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKDIwMCwgMjAwKTsKICAgICAgICB9CgogICAgfQoKfQ==