亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? calendarcanvas.java

?? 一個手機日歷程序的源代碼,包括顯示重要日期,節假日等
?? JAVA
字號:

import java.util.*;
import javax.microedition.lcdui.*;

public class CalendarCanvas extends Canvas implements CommandListener
{
	public static Command nextMonthCmd = new Command("NextMonth",Command.SCREEN,1);
    public static Command prevMonthCmd = new Command("PrevMonth",Command.SCREEN,1);
    public static Command nextYearCmd = new Command("nextYear",Command.SCREEN,1);
    public static Command prevYearCmd = new Command("prevYear",Command.SCREEN,1);
    public static Command selectCmd = new Command("select",Command.EXIT,2);
    //周日到周六的文字
    private static String weekDays = new String("SunMonTueWenThuFriSat");

    private static Font[] fontShow={Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_SMALL),
        Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_SMALL),
	    Font.getFont(Font.FACE_SYSTEM,Font.STYLE_UNDERLINED,Font.SIZE_SMALL),
	    Font.getFont(Font.FACE_SYSTEM,Font.STYLE_UNDERLINED|Font.STYLE_BOLD,Font.SIZE_SMALL)};

    private static int[] clrBK=  {0x00ffffff,0x00999999,0x00ffffff,0x00999999};
    private static int[] clrFont={0x00000000,0x00000000,0x00000000,0x00000000};

    private static Font fontSelected=Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_SMALL);
    private static int clrSelectedBK=0x00cccccc,clrSelectedFont = 0x00000000;
    //記錄每月天數
    private static int[] daysOfMonth = {31,28,31,30,31,30,31,31,30,31,30,31};
    //日期選擇事件處理對象
    protected DateSelectListener dateListener = null;
    //重要日期判斷對象
    protected ImportDateFilter dateFilter = null;
    //月份變動事件處理對象
    protected MonthChangeListener monthListener =null;

    private int width,height;
    private int startX;//保存繪圖開始的X坐標位置,便于日歷居中顯示
    private int iCellWidth,iCellHeight;//日歷顯示參數,每個日期所占空間
    private Calendar calTemp;//日期對象

    //當前焦點所在日期
    private int curYear,curMonth,curDay;

    public CalendarCanvas(Date date)
    {
		super();
	    addCommand(selectCmd);
	    addCommand(nextMonthCmd);
	    addCommand(prevMonthCmd);
	    addCommand(nextYearCmd);
	    addCommand(prevYearCmd);
	    setCommandListener(this);

	    calTemp = Calendar.getInstance();
	    if(date !=null)
		    calTemp.setTime(date);
	    curYear = calTemp.get(Calendar.YEAR);
	    curMonth = calTemp.get(Calendar.MONTH);
	    curDay = calTemp.get(Calendar.DAY_OF_MONTH);

	    iCellWidth = fontSelected.substringWidth(weekDays,0,3)+2;
	    iCellHeight=fontSelected.getHeight()+2;
    }


    public void setImportDateFilter(ImportDateFilter filter)
    {
		dateFilter = filter;
    }

    public void setDateSelectListener(DateSelectListener listener)
    {
		dateListener = listener;
    }

    public void setMonthChangeListener(MonthChangeListener listener)
    {
		monthListener = listener;
    }

    public Calendar getFocusDate()
    {
		calTemp.set(Calendar.YEAR,curYear);
	    calTemp.set(Calendar.MONTH,curMonth);
	    calTemp.set(Calendar.DAY_OF_MONTH,1);
	    return calTemp;
    }


    //在畫布顯示前保存屏幕尺寸
    protected void showNotify()
    {
		height = getHeight();
	    width = getWidth();
	    startX = (width- 7*iCellWidth)/2;
    }

    protected void paint(Graphics g)
    {
		//填充屏幕
	    g.setColor(0x00ffffff);
	    g.fillRect(0,0,width,height);
	    paintMonth(g);
    }

    protected void keyPressed(int keyCode)
    {
		int newDay = curDay;
	    switch(getGameAction(keyCode))
		{
			   case UP:
			   if(curDay>7)
			      newDay-=7;
		       break;
		       case DOWN:
			   if(curDay<=getDaysOfMonth(curYear,curMonth)-7)
			      newDay+=7;
		       break;
		       case LEFT:
		 	   if(curDay>1)
			      newDay --;
		       break;
		       case RIGHT:
			   if(curDay<getDaysOfMonth(curYear,curMonth))
			      newDay ++;
		       break;
		       case FIRE://確定選擇某個日期
			      selectDate();
		       break;
	   }
	   if(newDay !=curDay)
	   {
		   curDay = newDay;
		   repaint();
	   }
    }


//處理菜單命令事件 
    public void commandAction(Command c,Displayable d)
    {
		if(c== nextYearCmd)//切換到下一年
		{
			curYear ++;
		    curMonth = 0;
		    notifyMonthChange();
	    }
	    else if(c==prevYearCmd)
	    {
			curYear --;
		    curMonth =11;
		    notifyMonthChange();
	    }
	    else if(c== nextMonthCmd)
		    nextMonth();
	    else if(c== prevMonthCmd)
		    prevMonth();
	    else if(c== selectCmd)
	    {
			selectDate();
	    }
        repaint();
    }

    //繪制當月的日歷
    protected void paintMonth(Graphics g)
    {
		//顯示當前年月日
	    int offsetY = 0; //保存繪圖的Y軸坐標
	    g.setColor(clrSelectedFont);
	    g.setFont(fontSelected);
	    g.drawString(curYear+"/"+(curMonth+1),startX+iCellWidth*7/2,offsetY+2,Graphics.HCENTER|Graphics.TOP);
        //顯示一周中每天的時間
	    g.setColor(clrSelectedFont);
	    g.setFont(fontSelected);
	    offsetY+=iCellHeight;
	    for(int i=0;i<7;i++)
		   g.drawSubstring(weekDays,i*3,3,startX+i*iCellWidth+1,offsetY,Graphics.LEFT|Graphics.TOP);
	    //顯示當月所有日期
	    calTemp.set(Calendar.YEAR,curYear);
	    calTemp.set(Calendar.MONTH,curMonth);
	    int dayOW = 0;//保存星期
	    int clr1,clr2;//保存顏色值
	    Font ft;//保存字體
	    int type = ImportDateFilter.NORMALDAY;//日期的類型
	    int daysNum = getDaysOfMonth(curYear,curMonth);//得到當月的天數
	    offsetY+=iCellHeight;
        for(int i=1;i<=daysNum;i++)
	    {
			//分別對每天進行繪制
		    calTemp.set(Calendar.DAY_OF_MONTH,i);
	        dayOW = calTemp.get(Calendar.DAY_OF_WEEK);//得到當天是星期幾
	        if(i==curDay)
		    {
				//當天是被選中的日期,用固定的字體和顏色進行顯示
	            ft = fontSelected;
			    clr1 = clrSelectedBK;
			    clr2 = clrSelectedFont;
		    }

		    else
		    {
				//對于未選中的日期類型決定顯示方式
		        if(dateFilter !=null)
			    {     
					//判斷當天是否重要日期
			        type = dateFilter.isImportantDate(calTemp);
			    }

			    //type = i%4;
			    ft = fontShow[type];
			    clr1 = clrBK[type];
			    clr2 = clrFont[type];
		    }
	     	g.setFont(ft);
		    g.setColor(clr1);
    		g.fillRect(startX+(dayOW-1)*iCellWidth,offsetY,iCellWidth-1,iCellHeight-1);
	    	g.setColor(clr2);
		    g.drawString(String.valueOf(i),startX+(dayOW-1)*iCellWidth+iCellWidth/2,offsetY+1,Graphics.HCENTER|Graphics.TOP);
		    if(dayOW == Calendar.SATURDAY)
				offsetY+=iCellHeight;//轉入下一周前增加Y軸坐標
	    }
    }

    //將月份改為下個月 
    protected void nextMonth()
    {
		if(curMonth<11)
		  curMonth ++;
	    else
	    {
			curMonth = 0;
		    curYear ++;
	    }
	    curDay = 1;
	    notifyMonthChange();
    }

    protected void prevMonth()
    {
		if(curMonth>0)
		   curMonth--;
	    else
	    {
			curMonth = 11;
		    curYear --;
	    }
	    curDay = 1;
	    notifyMonthChange();
    }

    //確定選擇某個日期并引發事件
    protected void selectDate()
    {
		if(dateListener!=null)
	    {
			//引發事件
		    calTemp.set(Calendar.YEAR,curYear);
		    calTemp.set(Calendar.MONTH,curMonth);
		    calTemp.set(Calendar.DAY_OF_MONTH,curDay);
		    dateListener.dateSelected(this,calTemp);
	    }
    }
    //月份變化通知
    protected void notifyMonthChange()
    {
		if(monthListener !=null)
	    {
			calTemp.set(Calendar.YEAR,curYear);
		    calTemp.set(Calendar.MONTH,curMonth);
		    calTemp.set(Calendar.DAY_OF_MONTH,curDay);
		    monthListener.monthChanged(this,calTemp);
		}
    }

    //得到某年某月的天數
    protected int getDaysOfMonth(int year,int month)
    {
		if(month!=1)//如果不是2月,直接返回保存的當月天數
	        return daysOfMonth[month];
    	if(year%400==0||(year%100!=0 && year%4 ==0))
	    	return 29;
	    return daysOfMonth[month];
    }
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人鲁色资源国产91色综| 五月综合激情日本mⅴ| 日韩一级二级三级精品视频| 色噜噜狠狠成人网p站| 91无套直看片红桃| 色综合久久久久久久| 91蜜桃视频在线| 91麻豆.com| 欧美伦理影视网| 欧美猛男gaygay网站| 4hu四虎永久在线影院成人| 91精品国产欧美一区二区| 欧美一区二区国产| 精品粉嫩超白一线天av| 国产亚洲一区二区三区四区| 中文字幕第一区二区| 亚洲日本va午夜在线影院| 一区二区不卡在线播放| 午夜精品国产更新| 久久精品国产久精国产爱| 国产麻豆精品在线| 91亚洲精品乱码久久久久久蜜桃| 色诱亚洲精品久久久久久| 91麻豆精品91久久久久久清纯| 欧美一区日本一区韩国一区| 久久新电视剧免费观看| 国产精品婷婷午夜在线观看| 亚洲一区日韩精品中文字幕| 久久精品国产久精国产| av成人老司机| 日韩一级片网址| 中文字幕一区二区三区在线播放 | 久久午夜国产精品| 国产精品国产三级国产a | 91精品国产一区二区三区| 欧美大肚乱孕交hd孕妇| 国产精品乱人伦中文| 日本欧美加勒比视频| 成人app在线| 欧美一卡二卡三卡| 日本一区二区免费在线| 偷偷要91色婷婷| 99免费精品在线| 精品日韩99亚洲| 亚洲高清久久久| 成人精品在线视频观看| 91.成人天堂一区| 国产精品成人一区二区艾草 | 国产精品自拍网站| 在线免费观看成人短视频| 久久你懂得1024| 青椒成人免费视频| 欧洲一区在线观看| 中文字幕在线不卡国产视频| 精品一区二区三区免费播放| 欧美日韩一区在线| 国产精品久线在线观看| 国产精一品亚洲二区在线视频| 欧美日韩一区成人| 亚洲一区二区视频在线| 91一区一区三区| 中文字幕欧美激情一区| 国产成人综合在线| 26uuu久久天堂性欧美| 免费成人深夜小野草| 欧美日韩和欧美的一区二区| 亚洲欧美日韩在线不卡| 春色校园综合激情亚洲| 国产亚洲欧美在线| 国产乱对白刺激视频不卡| 欧美哺乳videos| 精品一区二区三区免费播放| 日韩一区二区在线观看视频| 三级久久三级久久久| 欧美美女激情18p| 三级不卡在线观看| 欧美美女bb生活片| 美女脱光内衣内裤视频久久影院| 欧美日韩国产综合久久 | 国产麻豆精品视频| 欧美va在线播放| 国产在线精品免费av| 精品国产乱码久久久久久闺蜜| 久久精品99国产精品| 久久久青草青青国产亚洲免观| 国产精品中文字幕欧美| 国产精品久久久久久久久动漫| 成人丝袜18视频在线观看| 国产精品九色蝌蚪自拍| 色欧美乱欧美15图片| 亚洲v日本v欧美v久久精品| 欧美丰满一区二区免费视频 | 中文字幕一区二区三区不卡在线| 成人免费av资源| 亚洲国产精品久久久男人的天堂| 在线综合视频播放| 久久99久久久久| 国产日韩欧美制服另类| 色综合视频一区二区三区高清| 亚洲国产日韩av| 精品国产伦一区二区三区免费| 国产麻豆91精品| 一区二区三区在线观看欧美| 欧美人狂配大交3d怪物一区 | 99免费精品视频| 亚洲3atv精品一区二区三区| 精品sm捆绑视频| 色系网站成人免费| 青青草精品视频| 国产精品视频在线看| 欧美丝袜丝nylons| 国产美女精品在线| 亚洲资源在线观看| 久久综合中文字幕| 欧美手机在线视频| 成人午夜视频网站| 日本不卡免费在线视频| 中文字幕av不卡| 日韩精品中文字幕在线不卡尤物| 99久久免费精品| 久久99日本精品| 午夜精品福利久久久| 国产人久久人人人人爽| 91精品午夜视频| 在线免费观看日韩欧美| 成人免费不卡视频| 国内精品久久久久影院薰衣草| 亚洲黄色av一区| 国产精品第四页| 2021国产精品久久精品| 欧美一区二区三区视频在线 | 麻豆久久久久久| 亚洲乱码中文字幕综合| 久久久精品天堂| 欧美mv和日韩mv国产网站| 欧美猛男超大videosgay| 91色porny在线视频| 高清不卡一区二区在线| 精品一二线国产| 久久成人免费网站| 男女激情视频一区| 日本不卡视频一二三区| 日韩专区中文字幕一区二区| 亚洲欧美福利一区二区| 国产精品久久看| 欧美国产日本韩| 国产精品毛片大码女人| 国产色爱av资源综合区| 久久天天做天天爱综合色| 日韩视频一区二区三区| 欧美一级久久久久久久大片| 欧美日韩国产成人在线91| 欧美日本在线播放| 欧美日韩精品欧美日韩精品一| 色哟哟精品一区| 在线看国产一区二区| 欧美三级日韩三级国产三级| 一本色道久久综合亚洲91 | 精品国精品自拍自在线| 日韩片之四级片| 亚洲精品在线观看网站| 久久久久久免费毛片精品| 国产亚洲va综合人人澡精品| 欧美国产欧美综合| 亚洲蜜臀av乱码久久精品蜜桃| 一区二区三区四区不卡在线| 亚洲综合色区另类av| 丝袜亚洲另类欧美综合| 蜜桃91丨九色丨蝌蚪91桃色| 国内精品写真在线观看| 成人免费高清视频在线观看| 99精品国产99久久久久久白柏| 91成人看片片| 日韩视频一区二区三区| 亚洲国产精品高清| 亚洲国产毛片aaaaa无费看| 免费高清不卡av| gogo大胆日本视频一区| 91国偷自产一区二区三区观看| 欧美日本高清视频在线观看| 精品福利一区二区三区免费视频| 欧美国产激情一区二区三区蜜月| 亚洲精品日日夜夜| 久久精品国内一区二区三区| 国产99久久久国产精品潘金| 欧洲av一区二区嗯嗯嗯啊| 日韩欧美卡一卡二| 一区精品在线播放| 美脚の诱脚舐め脚责91| 91尤物视频在线观看| 欧美一区二区久久| 亚洲日本va午夜在线影院| 激情伊人五月天久久综合| 91免费视频大全| 久久久三级国产网站| 午夜精品一区二区三区电影天堂 | 精品婷婷伊人一区三区三| 久久先锋影音av鲁色资源网| 一区二区理论电影在线观看| 国产美女精品在线|