Mainframe.java
Package Com.huowolf.mycalender;import Java.awt.borderlayout;import Java.awt.color;import java.awt.GridLayout; Import Java.awt.toolkit;import Java.awt.event.actionevent;import Java.awt.event.actionlistener;import Java.util.calendar;import Javax.swing.jcombobox;import Javax.swing.jframe;import Javax.swing.JLabel;import Javax.swing.jpanel;public class MainFrame extends jframe{private static final long serialversionuid = 90464999L; JPanel panel = new JPanel (new BorderLayout ()); JPanel Panel1 = new JPanel (); JPanel Panel2 = new JPanel (New GridLayout (7, 7)); JPanel panel3 = new JPanel (); jlabel[] labels = new jlabel[49]; JLabel Y_label = new JLabel ("year"); JLabel M_label = new JLabel ("month"); jcombobox<string> com1 = new jcombobox<string> (); jcombobox<string> COM2 = new jcombobox<string> (); int Re_year,re_mouth;int x_size,y_size;// Get a Calendar object for the current time calendars now = calendar.getinstance ();p ublic MainFrame () {super ("perpetual calendar") SetSize (300, 300);//Get screen width x_size = (int) toolkit.getdefaulttoolkit ().Getscreensize (). getwidth ();//Get screen height y_size = (int) toolkit.getdefaulttoolkit (). Getscreensize (). GetHeight (); SetLocation ((x_size-300)/2, (Y_SIZE-350)/2); setdefaultcloseoperation (Jframe.exit_on_close); Panel1.add (Y_label); Panel1.add (COM1); Panel1.add (M_label); Panel1.add (COM2); for (int i = 0; i < i++) {Labels[i] = new JLabel ("", jlabel.center);//sets the displayed character to center Panel2.ad D (Labels[i]); } panel3.add (New Clock (this)); Panel.add (Panel1, Borderlayout.north); Panel.add (Panel2, Borderlayout.center); Panel.add (Panel3, Borderlayout.south); Panel.setbackground (Color.White); Panel1.setbackground (Color.White); Panel2.setbackground (Color.White); Panel3.setbackground (Color.White); Init (); Com1.addactionlistener (New Clockaction ()); Com2.addactionlistener (New Clockaction ()); Setcontentpane (panel); SetVisible (TRUE); Prohibit dragging setresizable (false);} Class Clockaction implements ActionListener {public void actionperformed (ActionEvent e) {int C _year, C_month, C_week; C_year = Integer.parseint (Com1.getselecteditem (). toString ()); Gets the currently selected year C_month = Integer.parseint (Com2.getselecteditem (). toString ())-1; Get the current month and subtract 1, the month in the computer is 0-11 C_week = use (C_year, c_month); Call function use, get day of the week Resetday (C_week, C_year, C_month); Call function Resetday}}public void init () {int year, month_num, First_day_num; String log[] = {"Day", "one", "two", "three", "four", "five", "six"}; for (int i = 0; i < 7; i++) {Labels[i].settext (log[i]); } for (int i = 0; i <; i = i + 7) {labels[i].setforeground (color.red);//Set Sunday date to red} for (int i = 6; i <; i = i + 7) {labels[i].setforeground (Color.green);//Set Saturday date to Green } for (int i = 1; i < 10000; i++) {Com1.additem ("" + i); } for (int i = 1; i < i++) {Com2.additem ("" + i); } month_num = (int) (Now.get (Calendar.month)); Gets the current time of the month of year = (int) (Now.get (calendar.year)); Gets the current time of year Com1.setselectedindex (YEAR-1); The Settings drop-down list is displayed as the current year com2.setselectedindex (Month_num); The Settings drop-down list is displayed for the current month First_day_num = use (year, month_num); Resetday (First_day_num, year, month_num); } public int use (int reyear, int remonth) {int week_num; Now.set (Reyear, Remonth, 1); Set the time for the first day of the year you want to query week_num = (int) (Now.get (Calendar.day_of_week));//Get the first day of the week return week_num; } public void Resetday (int week_log, int year_log, int month_log) {int month_day_score;//number of days to store the month int c Ount = 1; Month_day_score = 0; Calendar cal = Calendar.getinstance (); /*cal.set (year_log+1900, Month_log + 1, 1); Cal.add (Calendar.month,-1); Previous month */Cal.set (year_log+1900, Month_log, 1); Month_day_score = Cal.getactualmaximum (calendar.day_of_month);//Get the last day of one months for (int i = 7; i <; i++) {//initialization Label (excluding the subscript value of the first seven labels) labels[i].settext (""); } Month_day_score = Month_day_score + week_log; for (int i = Week_log; i < Month_day_score; i++, count++) {Labels[i+6].settext (count + "");//plus subscript values for the first seven labels }}public static void Main (string[] args) {jframe.setdefaultlookandfeeldecorated (true);//provides its Window for the newly created JDialog Tips for decorating. New MainFrame ();}}
Clock.java
Package Com.huowolf.mycalender;import Java.awt.canvas;import Java.awt.color;import java.awt.font;import Java.awt.graphics;import Java.text.simpledateformat;import Java.util.calendar;public class Clock extends Canvas Implements Runnable{private static final long serialversionuid = 82782l;private Thread t;private String time; Public Clock (MainFrame MF) {setSize (280,40); SetBackground (Color.White); T=new Thread (this); Instantiate thread T.start (); @Overridepublic void Run () {while (true) {try {thread.sleep (1000); Hibernate 1 seconds} catch (Interruptedexception e) {System.out.println ("exception occurred");} Repaint (100);//Redraw component}}public void paint (Graphics g) {font f=new font ("Arial", font.bold,16) within 100 milliseconds; SimpleDateFormat sdf=new SimpleDateFormat ("yyyy ' year ' MM ' DD ' Day ' HH:mm:ss");//Format time display type Calendar now= Calendar.getinstance (); Time=sdf.format (Now.gettime ()); Get the current date and time G.setfont (f); G.setcolor (Color.orange); g.DrawString (Time,45,25);}}
Very good program, according to the network summary, it is worth learning!
The Java version of the calendar program