package GUI;
import java.awt.BorderLayout;
public class CalenderTrain extends JFrame implements ActionListener{
private String year_int;
private int month_int=0;
private boolean todayflag=false;
private JComboBox monthbox=new JComboBox();
private JComboBox yearbox=new JComboBox();
private JLabel year=new JLabel("年份:");
private JLabel month=new JLabel("月份:");
private JPanel top=new JPanel();
private JPanel main=new JPanel();
private JButton ok=new JButton("查看");
private JButton today=new JButton("今天");
private Date date=new Date();
private int now_year=date.getYear()+1900;
private int now_month=date.getMonth();
private JButton button[]=new JButton[7];
private final String b[]=new String[]{
"日","一","二","三","四","五","六"};
private JButton bu[]=new JButton[42];
public CalenderTrain(){
for(int i=now_year-10;i<=now_year+20;i++){
yearbox.addItem(i);
}
yearbox.setSelectedItem(now_year);
for(int i=1;i<13;i++){
monthbox.addItem(i);
}
monthbox.setSelectedItem(now_month+1);
ok.addActionListener(this);
today.addActionListener(this);
top.add(year);
top.add(yearbox);
top.add(month);
top.add(monthbox);
top.add(ok);
top.add(today);
this.add(top,BorderLayout.NORTH);
for(int i=0;i<button.length;i++){
button[i]=new JButton(b[i]);
main.add(button[i]);
}
for(int i=0;i<bu.length;i++){
bu[i]=new JButton(i+"");
main.add(bu[i]);
}
this.pain();
main.setLayout(new GridLayout(7,7));
this.add(main,BorderLayout.CENTER);
this.setBounds(200, 200, 400, 400);
this.setTitle("日历");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void pain(){
int day_week=0;
int days=0;
if(todayflag==true){
year_int=now_year+"";
month_int=now_month;
}else{
year_int=yearbox.getSelectedItem().toString();
month_int=monthbox.getSelectedIndex();
}
int years=Integer.parseInt(year_int.trim())-1900;
Date firstday=new Date(years,month_int,1);
GregorianCalendar cal=new GregorianCalendar();
cal.setTime(firstday);
if(month_int==0||month_int==2||month_int==4||month_int==6||month_int==7||month_int==9||month_int==11){
days=31;
}else if(month_int==3||month_int==5||month_int==8||month_int==10){
days=30;
}else if(cal.isLeapYear(years)){//判断该年是否为闰年,是闰年,2月份为29天,不是闰年,2月份为28天
days=29;
}else{
days=28;
}
int count=1;
day_week=firstday.getDay();
// System.out.println(month_int);
// System.out.println(new Date().getMonth());
for(int i=day_week;i<day_week+days;i++,count++){
if((years==new Date().getYear())&&(month_int==new Date().getMonth())&&(new Date().getDate()+day_week-1==i)){
bu[i].setForeground(Color.red);
}else{
bu[i].setForeground(Color.black);
}
bu[i].setText(count+"");
}
if(day_week!=0){
for(int i=0;i<day_week;i++){
bu[i].setText(" ");
}
for(int j=day_week+days;j<42;j++){
bu[j].setText(" ");
}
}
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==today){
todayflag=true;
monthbox.setSelectedItem(now_month+1);
yearbox.setSelectedItem(now_year);
this.pain();
}
if(e.getSource()==ok){
todayflag=false;
this.pain();
}
}
public static void main(String[] args) {
CalenderTrain calendertrain=new CalenderTrain();
}
}
分享到:
相关推荐
在这个"简易日历"项目中,开发者利用CocosCreator的特性,构建了一个类似电脑桌面日历的应用。尽管这个日历可能不包含所有传统日历的功能,但它展示了如何在CocosCreator中实现基本的时间管理和用户界面设计。 首先...
【简易日历】项目是一个基于源码实现的实用工具,旨在提供一个简洁、易用的日历功能。通过这个项目,我们可以学习到如何在编程中创建一个具有基本日历功能的应用,例如查看当前日期、切换月份以及标记特定日期等。...
【标题】:“用C语言编写的一个简易日历” 在编程领域,C语言是一种基础且强大的编程语言,常用于系统编程、软件开发以及教学。本项目是利用C语言实现的一个简单的日历程序,对于初学者来说,这是一个很好的学习...
在iOS开发中,创建一个简单的日历应用是一个常见的任务,这可以帮助用户查看和管理他们的日程安排。"iOS简单日历Demo"项目就是一个这样的实例,它展示了如何在iOS平台上实现基本的日历功能。这个Demo主要涉及到以下...
简易日历
在Android平台上,开发一款简易日历中心应用是一个常见的任务,涉及到日期管理、事件安排和用户交互等多个方面。这个"Android应用源码之简易日历中心.zip"提供的源代码可以帮助我们理解如何实现这样的功能。让我们...
这个项目名为"DuangCalender",是一个基于Java和Android开发的简易日历记事本应用。这个源码库包含了日历视图和日志记事本功能,旨在为用户提供一个简单而实用的日常管理工具。 在Java编程语言中,日历功能通常涉及...
【标题】"带标记的简易日历"是一个项目,它可能是一个日历应用或库的示例,旨在提供一种简洁的方式展示日期,并且允许用户在特定日期上添加标记。这样的功能常见于各种日程管理软件,帮助用户追踪重要的事件、纪念日...
Java实现简单日历小程序 Java是当前最流行的编程语言之一,广泛应用于Android应用开发、Web开发、企业软件开发等领域。Javaswing是Java提供的一种图形用户界面(GUI)工具包,能够帮助开发者快速创建跨平台的图形...
《C#实现的简单日历源码解析》 在编程领域,C#是一种广泛使用的面向对象的编程语言,尤其在Windows应用开发中占有重要地位。本篇将详细解析一款使用C#编写的简单日历程序,它包含了阳历和阴历的显示功能,并能随...
在Android平台上创建一个简易日历应用,涉及到许多关键技术和组件,包括Java编程语言、Android SDK、用户界面设计以及数据管理。下面将详细讲解这些知识点。 首先,基础是**Java编程语言**,它是Android开发的主要...
JavaScript简易日历插件是一种轻量级的交互组件,它能够方便地集成到网页中,为用户提供日期选择功能。这个插件的核心是JavaScript语言,它利用DOM操作和事件处理来实现日历的显示与交互。CSS文件则负责日历的样式...
这个简易日历程序是为初学者设计的,旨在帮助他们理解C语言的基本概念,同时接触与Linux系统交互的知识。下面将详细介绍这个项目的相关知识点。 1. **C语言基础**: C语言是一种结构化编程语言,具有高效、灵活...
在Android平台上,开发一款简易日历应用可以帮助用户方便地查看日期和管理事件。这个"Android简易日历Demo"提供了一个基础的学习平台,让开发者能够快速掌握如何在Android应用中实现日历功能。以下是对这个Demo涉及...
这个压缩包包含三个重要的源码项目:购物车源码、简易日历源码和留言板源码,这些都是Web开发中常见的功能模块,对于初学者或者希望提升技能的开发者来说极具价值。 1. **购物车源码**: 购物车源码是电商网站的...
【标题】"Android高级应用源码-简易日历中心.zip" 涵盖了Android平台上构建一个简单日历应用的核心技术。这个项目可能是为开发者提供一个学习和参考的实例,帮助他们理解如何在Android环境中创建功能丰富的日历应用...
用js动态生成日历位置,闭包控制点击后出现的时间。
在本文中,我们将深入探讨如何使用C++编程语言创建一个简单的日历程序。C++是一种通用的、面向对象的编程语言,它具有高效性、灵活性和丰富的库支持,非常适合进行这种类型的应用开发。 首先,我们需要了解日历的...
在这个项目中,我们关注的是一个“JS简易日历”,它利用JavaScript语言来创建一个视觉上吸引人的、功能简单的日历组件。JavaScript,作为Web开发中的主要脚本语言,允许我们在不刷新页面的情况下动态更新内容,从而...