`

日历控件

阅读更多

日历控件程序,也许有用。
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->  1 //////////////////////////////////////////////////////////////////////////////////
  2 //
  3 //  描述: 实现了日历空间
  4 //
  5 //  时间:2006-10
  6 //
  7 //  作者: JAVA&HE
  8 //
  9 ////////////////////////////////////////////////////////////////////////////////
 10 
 11 import javax.swing.*;
 12 import java.awt.*;
 13 import java.awt.event.*;
 14 import java.text.*;
 15 import java.util.*;
 16 
 17 class Clock extends Canvas implements Runnable
 18 {
 19     TestClock mf;
 20     Thread t;
 21     String time;
 22     Clock (TestClock mf)
 23     {
 24         this.mf=mf;
 25         setSize (400,40);
 26         setBackground (Color.white);
 27         t=new Thread (this);                //实例化线程
 28         t.start ();                        //调用线程
 29     }
 30     public void run ()
 31     {
 32         while(true)
 33         {
 34             try
 35             {
 36                 t.sleep (1000);                    //休眠1秒钟
 37             }
 38             catch(InterruptedException e)
 39             {
 40                 System.out.println ("异常");
 41             }
 42             this.repaint (100);
 43         }
 44     }
 45     public void paint (Graphics g)
 46     {
 47         Font f=new Font ("宋体",Font.BOLD,16);
 48         SimpleDateFormat SDF=new SimpleDateFormat ("yyyy'年'MM'月'dd'日'HH:mm:ss");//格式化时间显示类型
 49         Calendar now=Calendar.getInstance ();
 50         time=SDF.format (now.getTime ());        //得到当前日期和时间
 51         g.setFont (f);
 52         g.setColor (Color.orange);
 53         g.drawString (time,100,25);
 54     }
 55 }
 56 class TestClock extends JFrame
 57 {
 58     JPanel panel=new JPanel (new BorderLayout ());
 59     JPanel panel1=new JPanel ();
 60     JPanel panel2=new JPanel (new GridLayout (7,7));
 61     JPanel panel3=new JPanel ();
 62     JLabel []label=new JLabel[49];
 63     JLabel y_label=new JLabel ("年份");
 64     JLabel m_label=new JLabel ("月份");
 65     JComboBox com1=new JComboBox ();
 66     JComboBox com2=new JComboBox ();
 67     JButton button=new JButton ("查看");
 68     int re_year,re_month;
 69     int x_size,y_size;
 70     String year_num;
 71     Calendar now=Calendar.getInstance ();    //实例化Calendar
 72     TestClock ()
 73     {
 74         super ("万年历");
 75         setSize (300,350);
 76         x_size=(int)(Toolkit.getDefaultToolkit ().getScreenSize ().getWidth ());
 77         y_size=(int)(Toolkit.getDefaultToolkit ().getScreenSize ().getHeight ());
 78         setLocation ((x_size-300)/2,(y_size-350)/2);
 79         setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
 80         panel1.add (y_label);
 81         panel1.add (com1);
 82         panel1.add (m_label);
 83         panel1.add (com2);
 84         panel1.add (button);
 85         for(int i=0;i<49;i++)
 86         {
 87             label[i]=new JLabel ("",JLabel.CENTER);//将显示的字符设置为居中
 88             panel2.add (label[i]);
 89         }
 90         panel3.add (new Clock (this));
 91         panel.add (panel1,BorderLayout.NORTH);
 92         panel.add (panel2,BorderLayout.CENTER);
 93         panel.add (panel3,BorderLayout.SOUTH);
 94         panel.setBackground (Color.white);
 95         panel1.setBackground (Color.white);
 96         panel2.setBackground (Color.white);
 97         panel3.setBackground (Color.white);
 98         Init ();
 99         button.addActionListener (new ActionListener ()
100         {
101             public void actionPerformed (ActionEvent e)
102             {
103                 int c_year,c_month,c_week;
104                 c_year=Integer.parseInt (com1.getSelectedItem ().toString ());        //得到当前所选年份
105                 c_month=Integer.parseInt (com2.getSelectedItem ().toString ())-1;    //得到当前月份,并减1,计算机中的月为0-11
106                 c_week=use (c_year,c_month);        //调用函数use,得到星期几
107                 Resetday (c_week,c_year,c_month);        //调用函数Resetday
108             }});
109             setContentPane (panel);
110             setVisible (true);
111             setResizable (false);
112     }
113     public void Init ()
114     {
115         int year,month_num,first_day_num;
116         String log[]={"","","","","","",""};
117         for(int i=0;i<7;i++)
118         {
119             label[i].setText (log[i]);
120         }
121         for(int i=0;i<49;i=i+7)
122         {
123             label[i].setForeground (Color.red);    //将星期日的日期设置为红色
124         }
125         for(int i=6;i<49;i=i+7)
126         {
127             label[i].setForeground (Color.green);//将星期六的日期设置为绿色
128         }
129         for(int i=1;i<10000;i++)
130         {
131             com1.addItem (""+i);
132         }
133         for(int i=1;i<13;i++)
134         {
135             com2.addItem (""+i);
136         }
137         month_num=(int)(now.get (Calendar.MONTH));    //得到当前时间的月份
138         year=(int)(now.get (Calendar.YEAR));            //得到当前时间的年份
139         com1.setSelectedIndex (year-1);                //设置下拉列表显示为当前年
140         com2.setSelectedIndex (month_num);            //设置下拉列表显示为当前月
141         first_day_num=use (year,month_num);
142         Resetday (first_day_num,year,month_num);
143     }
144     public int use (int reyear,int remonth)
145     {
146         int week_num;
147         now.set (reyear,remonth,1);        //设置时间为所要查询的年月的第一天
148         week_num= (int)(now.get (Calendar.DAY_OF_WEEK));//得到第一天的星期
149         return week_num;
150     }
151     public void Resetday (int week_log,int year_log,int month_log)
152     {
153         int month_score_log;    //判断是否是闰年的标记
154         int month_day_score;    //存储月份的天数
155         int count;
156         month_score_log=0;
157         month_day_score=0;
158         count=1;
159         if(year_log%4==0&&year_log%100!=0||year_log%400==0)
160         {//判断是否为闰年
161             month_score_log=1;
162         }
163         month_log=month_log+1;    //将传来的月份数加1
164         switch(month_log)
165         {
166             case 1:
167             case 3:
168             case 5:
169             case 7:
170             case 8:
171             case 10:
172             case 12:
173                 month_day_score=31;
174                 break;
175             case 4:
176             case 6:
177             case 9:
178             case 11:
179                 month_day_score=30;
180                 break;
181             case 2:
182                 if(month_score_log==1)
183                 {
184                     month_day_score=29;
185                 }
186                 else
187                 {
188                     month_day_score=28;
189                 }
190                 break;
191         }
192         for(int i=7;i<49;i++)
193         {        //初始化标签
194             label[i].setText ("");
195         }
196         week_log=week_log+6;        //将星期数加6,使显示正确
197         month_day_score=month_day_score+week_log;
198         for(int i=week_log;i<month_day_score;i++,count++)
199         {
200             label[i].setText (count+"");
201         }
202     }
203     public static void main (String [] args)
204     {
205         JFrame.setDefaultLookAndFeelDecorated (true);
206         TestClock start=new TestClock ();
207     }
208 }
209 


分享到:
评论

相关推荐

    日历控件大全 - 日历控件

    在IT领域,日历控件是一种常见的用户界面元素,它允许用户方便地选择日期或查看日期安排。在本文中,我们将深入探讨日历控件的种类、用途、设计原则以及如何在不同编程语言和框架中实现和应用这些控件。 首先,让...

    Qt 自定义 Calendar 日历控件

    在本场景中,我们关注的是“Qt自定义Calendar日历控件”。这涉及到使用Qt库中的QCalendarWidget或者完全从头构建一个自定义的日历组件。通过自定义,我们可以更好地控制日历的显示、交互和样式,以适应应用程序的...

    提供excel 日历控件9.0下载(工具必须的插件)

    在Excel中,日历控件是一种非常实用的功能,它允许用户通过一个直观的日历界面来选择日期,这对于处理与时间相关的数据尤其有用。标题提到的"提供excel 日历控件9.0下载"指的是为不支持或缺少此功能的Excel版本提供...

    html js脚本日历控件

    在JavaScript中,创建一个日历控件主要涉及到DOM操作、事件处理和一些基本的CSS样式设计。下面我们将详细探讨这些知识点: 1. **DOM操作**:HTML文档对象模型(DOM)是HTML和XML文档的编程接口。在JavaScript中,...

    Winform自定义日历控件

    当我们需要在Winform应用中实现特定的日历功能,如考勤管理、日程安排或任务计划时,自定义日历控件就显得尤为重要。本文将详细讨论如何创建一个Winform自定义日历控件,并探讨其在实际业务中的应用。 首先,创建...

    VC MFC日历控件ocx activex

    "VC MFC日历控件OCX ActiveX"是Microsoft Visual C++(简称VC)MFC(Microsoft Foundation Classes)框架下的一种控件,用于创建具有日历功能的应用程序。这种控件基于ActiveX技术,也称为OCX(OLE Control ...

    MFC日历控件的使用方法

    在Microsoft Foundation Classes (MFC)库中,日历控件是一种用于显示和选择日期的图形用户界面元素。本文将深入探讨如何在MFC应用程序中添加并使用日历控件,以便用户可以方便地进行日期选择。 首先,我们需要在...

    组态王应用——日历控件的使用

    ### 组态王应用——日历控件的深入解析与实践 #### 一、日历控件概述 在工业自动化领域,组态软件是实现监控与数据采集(SCADA)的关键工具之一。其中,“组态王”作为一款知名的国产组态软件,广泛应用于各种工业...

    Calendar(日历控件[完整版])

    "Calendar(日历控件[完整版])"是一款出色的JavaScript实现的日历组件,适用于网页中添加日期选择功能。它提供了丰富的交互效果和自定义皮肤,为网页增添专业且美观的用户体验。这款控件的主要特点包括以下几个方面:...

    日历控件大集合—各式各样的日历控件

    在IT领域,日历控件是用户界面设计中不可或缺的一部分,尤其在涉及到日期选择、日程安排或时间管理的应用中。日历控件提供了一种直观且用户友好的方式来与日期进行交互。本篇文章将深入探讨日历控件的各种类型、设计...

    网页表单中的日历控件

    在网页表单中,日历控件是一个非常实用的功能,它为用户提供了一个直观的方式来选择日期,避免了手动输入可能产生的错误。日历控件通常会显示一个交互式的月份视图,用户可以通过点击来选择特定的日期。这种控件在...

    winform自定义日历控件

    本案例中,我们讨论的是如何创建一个"winform自定义日历控件",模仿百度的日历展示样式。这个自定义控件通常会包含日期选择、事件标记、颜色定制等功能,以提供更加友好和个性化的用户体验。 在C#中,我们可以继承`...

    一套完整的日历控件

    在IT领域,日历控件是一种常见的用户界面元素,它允许用户方便地选择日期和时间。这个名为"一套完整的日历控件"的资源提供了一个源码开放的日历控件解决方案,适合开发者在构建Web应用时集成到他们的项目中。这个...

    日历控件.rar 日历控件.rar

    日历控件是软件开发中常见的一种用户界面元素,它允许用户方便地选择日期或进行日期相关的操作。在本文中,我们将深入探讨日历控件的设计、实现、用途以及与之相关的技术细节。 首先,日历控件通常分为两种类型:...

    JQ版本自定义日历控件

    在网页开发中,日历控件是一个常见且实用的组件,它可以帮助用户方便地选择日期,常见于表单输入、事件预订或者时间管理等场景。"JQ版本自定义日历控件"是指利用jQuery来实现一个可自定义的日历插件。接下来,我们将...

    强大的日历控件

    【强大的日历控件】是一种在软件开发中广泛使用的组件,尤其在Web应用程序和桌面应用程序中,它为用户提供了一个直观的界面来选择日期或者进行日期相关的操作。在信息技术领域,日历控件是用户界面(UI)设计的一个...

    介绍一个ActiveX日历控件.ocx

    "ActiveX日历控件.ocx"就是这样一个专门用于显示日期和时间的组件。 日历控件是用户界面设计中的常见元素,它允许用户方便地选择日期,常用于事件预订、任务管理或任何形式的日期输入。在ActiveX框架下,这个`.ocx`...

    JSP日历控件代码

    **JSP日历控件代码详解** 在网页开发中,日期选择控件是常见的功能之一,JSP(JavaServer Pages)作为服务器端脚本语言,提供了丰富的功能来创建动态网页。本篇将深入探讨如何在JSP中实现日历控件,并基于提供的...

    日历控件12

    在IT领域,日历控件是一种常见的用户界面元素,它允许用户方便地选择日期或进行日期相关的操作。在“日历控件12”中,我们可能会遇到一系列关于如何集成、自定义以及优化这种控件的知识点。下面将详细介绍这些内容。...

    ASP.net调用日历控件

    在ASP.NET中,日历控件(Calendar Control)是一个非常常用的UI组件,它允许用户以图形化的方式选择日期。在本教程中,我们将探讨如何在ASP.NET应用中调用日历控件,并将所选日期赋值给一个文本框。 首先,让我们...

Global site tag (gtag.js) - Google Analytics