java 日历_技术成长笔记_新浪博客

package Rong;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class CalendarFrame extends JFrame {

 private static final long serialVersionUID = 1L;
 final long msInOneDay = 24 * 60 * 60 * 1000;//一天的毫秒数
 CalendarPanel pnl;

 public CalendarFrame() {
  this.init();
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭方式
  this.setSize(120,160);
  this.setResizable(true);//不可改变大小
  this.setVisible(true);//设置可见
 }

 private void init() {
  this.pnl = new CalendarPanel();
  //绘制本月的日历
  this.pnl.setDate(new Date(new Date().getTime()));
  //绘制上个月的日历
  //this.pnl.setDate(new Date(new Date().getTime()-(long)30*this.msInOneDay));
  this.setContentPane(this.pnl);
 }

 public static void main(String[] args) {
  new CalendarFrame();
 }

 class CalendarPanel extends JPanel {
  private static final long serialVersionUID = 1L;
  Image imgBack, imgDay, imgToday;
  SimpleDateFormat year = new SimpleDateFormat("yyyy");//年
  SimpleDateFormat month = new SimpleDateFormat("MMMM");//月
  SimpleDateFormat day = new SimpleDateFormat("d");//日
  Date date = new Date();
  public CalendarPanel() {
   this.imgBack = new ImageIcon("11.png").getImage();
   this.imgDay = new ImageIcon("212.png").getImage();
   this.imgToday = new ImageIcon("33.png").getImage();
   this.setPreferredSize(new Dimension(this.imgBack.getWidth(null),
     this.imgBack.getHeight(null)));
  }
        //允许调用时指定将哪个日期当作默认日期
  public void setDate(Date date) {
   this.date = date;
  }
 
  public void paintComponent(Graphics g) {
   ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING,
     RenderingHints.VALUE_ANTIALIAS_ON);
   g.drawImage(this.imgBack, 0, 0, null);
   g.setColor(Color.black);
   g.setFont(new Font("SansSerif", Font.PLAIN, 18));
   g.drawString(month.format(this.date), 34, 40);
   g.setColor(Color.white);
   g.drawString(year.format(this.date), 220, 40);
   Calendar today = Calendar.getInstance();
   today.setTime(this.date);
   Calendar cal = Calendar.getInstance();
   cal.setTime(this.date);
   cal.set(Calendar.DATE, 1);
   cal.add(Calendar.DATE, -cal.get(Calendar.DAY_OF_WEEK) + 1);
   for (int week = 0; week < 6; week++) {
    for (int d = 0; d < 7; d++) {
     Image img = imgDay;
     if (cal.get(Calendar.MONTH) == today.get(Calendar.MONTH)) {
      if (cal.equals(today)) {
       img = imgToday;
       g.setColor(Color.white);
      } else {
       g.setColor(Color.gray);
      }
      if (d == 0) {
       g.setColor(Color.red);
      }
      g.drawImage(img, d * 32 + 38, week * 29 + 100, null);
      g.drawString(day.format(cal.getTime()),
        d * 32 + 38 + 4, week * 29 + 100 + 20);
     }
     cal.add(Calendar.DATE, 1);
    }
   }
  }
 }
} java <wbr>日历

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值