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

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

?? calendarcanvas.java.bak

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

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一区二区三区免费野_久草精品视频
日韩激情中文字幕| 欧美成人免费网站| 日韩精品最新网址| 国产精品久久久久久福利一牛影视| 亚洲成人手机在线| 成人免费毛片嘿嘿连载视频| 欧美老女人在线| 国产精品美女视频| 理论片日本一区| 欧美系列一区二区| 亚洲人亚洲人成电影网站色| 国产在线视频精品一区| 欧美美女bb生活片| 日韩毛片一二三区| 成人理论电影网| 欧美大胆一级视频| 亚洲h动漫在线| 色偷偷成人一区二区三区91| 欧美经典一区二区三区| 免费人成精品欧美精品| 91高清视频免费看| 亚洲日本青草视频在线怡红院| 精品一区二区三区视频 | 国产一区二区三区综合| 欧美伊人久久大香线蕉综合69| 久久久久久免费毛片精品| 日本成人中文字幕在线视频| 91福利精品视频| 亚洲免费看黄网站| 91免费精品国自产拍在线不卡| 国产欧美日韩三区| 国产成人av网站| 久久久久久久免费视频了| 国产在线精品一区二区夜色| 日韩午夜在线观看| 日本欧美一区二区| 日韩三级伦理片妻子的秘密按摩| 亚洲成在人线在线播放| 欧美日韩精品欧美日韩精品一| 亚洲精品视频一区二区| 91视频免费看| 亚洲人123区| 色呦呦一区二区三区| 亚洲天堂免费看| 色综合天天综合网国产成人综合天| 亚洲大片一区二区三区| 精品污污网站免费看| 午夜精品久久久久久久蜜桃app| 欧日韩精品视频| 亚洲成人精品一区| 欧美一区2区视频在线观看| 蜜桃视频在线观看一区| 久久夜色精品国产噜噜av| 国产成人a级片| 亚洲女性喷水在线观看一区| 欧美午夜精品免费| 日本视频一区二区三区| 欧美精选一区二区| 久久国产精品72免费观看| 国产日韩欧美在线一区| 一本大道久久a久久综合| 亚洲超碰97人人做人人爱| 日韩欧美激情四射| 成人午夜av电影| 亚洲午夜久久久久久久久久久 | 粉嫩13p一区二区三区| 一区二区中文视频| 欧美一级专区免费大片| 国产69精品久久久久777| 亚洲一区二区四区蜜桃| 欧美岛国在线观看| 91美女片黄在线观看| 日本女人一区二区三区| 国产欧美一区二区精品仙草咪| 在线视频一区二区免费| 精彩视频一区二区| 亚洲人成在线播放网站岛国| 制服丝袜av成人在线看| 成人av网站免费观看| 午夜伦理一区二区| 国产精品美女久久久久久久久| 欧美日韩视频在线一区二区| 国产成人综合亚洲91猫咪| 亚洲一二三四区不卡| 国产午夜精品久久久久久免费视 | 自拍偷拍亚洲激情| 欧美一区二区在线不卡| 成人h动漫精品一区二区 | 中文字幕日韩一区| 精品国产髙清在线看国产毛片| 色拍拍在线精品视频8848| 国产在线看一区| 日韩不卡一区二区| 亚洲男人都懂的| 国产日韩欧美电影| 日韩欧美中文字幕制服| 欧美视频一区二区三区| a级高清视频欧美日韩| 麻豆成人综合网| 亚洲狠狠爱一区二区三区| 1024亚洲合集| 国产日产欧美精品一区二区三区| 欧美福利视频导航| 91在线精品一区二区| 精品在线亚洲视频| 婷婷久久综合九色综合绿巨人| 亚洲日本电影在线| 中文字幕一区二区三区在线不卡| 欧美变态tickle挠乳网站| 欧美一区二区免费观在线| 欧美三级欧美一级| 91九色02白丝porn| 一本一本久久a久久精品综合麻豆| 国产精品99久久久久久有的能看| wwwwww.欧美系列| 欧美va日韩va| 日韩精品一区二区三区中文精品| 欧美日韩国产高清一区二区| 欧美日韩在线观看一区二区| 91福利国产成人精品照片| 在线看国产一区二区| 欧美一区二区三区思思人| 欧美三级电影网站| 欧美日韩一区二区三区在线| 欧美日韩国产首页| 91精品国产综合久久精品| 欧美一级欧美三级在线观看| 欧美一区二区三区啪啪| 精品日韩成人av| 欧美成人伊人久久综合网| 欧美sm极限捆绑bd| 久久久精品国产99久久精品芒果| 久久视频一区二区| 国产精品久久久久久亚洲伦| 亚洲男人的天堂网| 亚洲大片免费看| 麻豆精品视频在线| 国产91在线观看| 一本到高清视频免费精品| 欧美日韩专区在线| 日韩欧美电影一二三| 国产日韩综合av| 亚洲一区二区在线免费观看视频| 日韩在线a电影| 精品一区二区精品| bt欧美亚洲午夜电影天堂| 欧美色区777第一页| 日韩一级大片在线观看| 久久久久88色偷偷免费| 亚洲日本va午夜在线电影| 日韩国产欧美在线视频| 激情深爱一区二区| 91美女片黄在线观看| 日韩欧美国产wwwww| 国产日韩欧美在线一区| 亚洲大片一区二区三区| 国产成人在线观看| 91成人免费在线| 亚洲精品一区二区三区99| 亚洲欧美另类在线| 激情都市一区二区| 欧美主播一区二区三区美女| 亚洲精品一区二区三区影院| 亚洲精品精品亚洲| 国产在线国偷精品产拍免费yy| 色哟哟在线观看一区二区三区| 欧美一级欧美一级在线播放| 中文字幕亚洲区| 麻豆91精品91久久久的内涵| 91视视频在线直接观看在线看网页在线看 | 亚洲在线观看免费| 国产成人高清在线| 制服丝袜中文字幕一区| 国产精品盗摄一区二区三区| 久久精品国产一区二区三 | 狠狠色丁香久久婷婷综| 欧美亚洲免费在线一区| 中文字幕不卡一区| 美美哒免费高清在线观看视频一区二区| 国产成人在线电影| 日韩免费高清视频| 五月天中文字幕一区二区| aaa欧美色吧激情视频| 精品sm捆绑视频| 婷婷综合另类小说色区| 91视频com| 国产精品视频麻豆| 国产乱一区二区| 日韩视频国产视频| 午夜欧美大尺度福利影院在线看 | 国产成人亚洲精品青草天美| 91精品在线一区二区| 亚洲无人区一区| 日本福利一区二区| 亚洲三级理论片| 99在线精品观看| 中文字幕制服丝袜一区二区三区| 国内成人免费视频| 欧美成人性福生活免费看| 美女看a上一区|