返回顶部

收藏

自定义日历显示日期

更多
public class CalendarHack extends JPanel {
        protected Image background, highlight, day_img;
        protected SimpleDateFormat month = new SimpleDateFormat("MMMM");
protected SimpleDateFormat year = new SimpleDateFormat("yyyy");
        protected SimpleDateFormat day = new SimpleDateFormat("d");
        protected Date date = new Date();

        public void setDate(Date date) {
            this.date = date;
        }

        public CalendarHack() {
            background = new ImageIcon("calendar.png").getImage();
            highlight = new ImageIcon("highlight.png").getImage();
            day_img = new ImageIcon("day.png").getImage();
            this.setPreferredSize(new Dimension(300,280));

        }

        public void paintComponent(Graphics g) {

            ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
            g.drawImage(background,0,0,null);
            g.setColor(Color.black);
            g.setFont(new Font("SansSerif",Font.PLAIN,18));
            g.drawString(month.format(date),34,36);
            g.setColor(Color.white);
            g.drawString(year.format(date),235,36);

        }
    }

    Calendar today = Calendar.getInstance();
    today.setTime(date);
    Calendar cal = Calendar.getInstance();
    cal.setTime(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 = day_img;
            Color col = Color.black;
            // only draw if it's actually in this month
            if(cal.get(Calendar.MONTH) == today.get(Calendar.MONTH)) {
                if(cal.equals(today)) {
                img = highlight;
                col = Color.white;
                }
                g.drawImage(img,d*30+46,week*29+81,null);
                g.drawString(day.format(cal.getTime()),
                d*30+46+4,week*29+81+20);
            }
            cal.add(Calendar.DATE,+1);
        }
    }
//该片段来自于http://outofmemory.cn

标签:java,基础

收藏

0人收藏

支持

0

反对

0

发表评论