?? sdadatetimepicker.java
字號:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package cn.sda.ui;import cn.sda.event.BaseEditTextChangeEvent;import cn.sda.event.KeybordEvent;import cn.sda.event.NotifyEvent;import cn.sda.event.PointerEvent;import java.util.Calendar;import java.util.TimeZone;import javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Font;/** * * @author Administrator */public class SDADateTimePicker extends SDABaseControl { private int borderColor = SDAConsts.clBlack; private int arrowWidth = 15; private int arrowBackColor = SDAConsts.clBtnFace; private int selectedFontColor = SDAConsts.clWhite; private int selectedBackColor = SDAConsts.clFocusShadow; //日期 private int Year = 0; private int Month = 0; private int Day = 0; private int Hour = 0; private int Minute = 0; private int Second = 0; //格式 private int dateKind = SDAConsts.dkDate; //當前選中類型(Year:0,Month:1,Day:2,Hour:3,Minute:4,Second:5) private int selectType = -1; private int selectStart = 0; private int selectLen = 0; private String selectText = ""; //日期 Calendar cl = null; //當前時間 private String dateTime = ""; private SDABaseEdit NumEdit = null; //是否可以編輯 private boolean canEdit = false; public SDADateTimePicker() { super(); cl = Calendar.getInstance(TimeZone.getDefault()); //初始化 Year = cl.get(Calendar.YEAR); Month = cl.get(Calendar.MONTH) + 1; Day = cl.get(Calendar.DATE); Hour = cl.get(Calendar.HOUR_OF_DAY); Minute = cl.get(Calendar.MINUTE); Second = cl.get(Calendar.SECOND); dateTime = String.valueOf(Year) + "-" + String.valueOf(Month) + "-" + String.valueOf(Day); //可視屬性 visible = true; width = 100; height = 20; backColor = SDAConsts.clWhite; NumEdit = new SDABaseEdit(); NumEdit.setBorderStyle(SDAConsts.bsFixedSingle); NumEdit.backColor = SDAConsts.clFocusShadow; NumEdit.foreColor = SDAConsts.clWhite; NumEdit.visible = false; setCanEdit(false); AddControl(NumEdit); NumEdit.setOnLostFocused(new NotifyEvent() { public void Event(SDABaseControl ctrl) { //失去焦點,隱藏 NumEdit.cursorCol = 0; internalPaint(); } }); NumEdit.setOnFocused(new NotifyEvent() { public void Event(SDABaseControl ctrl) { //設置輸入法 form.Application.inputPanel.setImeType(SDAInputPanel.imDigit); form.repaintControl(); } }); //內容變化 NumEdit.setOnTextChange(new BaseEditTextChangeEvent() { public void Event(SDABaseEdit edit) { //文字變化 int value = 0; try { value = Integer.parseInt(NumEdit.text); setSelectValue(value, false); } catch (Exception e) { setSelectValue(Integer.parseInt(selectText), false); } } }); setOnKeyUp(new KeybordEvent() { public void Event(SDABaseControl ctrl, int keyCode) { //按下 doKeyUp(keyCode); } }); setOnPointerPressed(new PointerEvent() { public void Event(SDABaseControl ctrl, int x, int y) { //觸屏 doPointerPress(x, y); } }); } private void setTab(boolean tab) { tabStop = tab; } public int getArrowWidth() { return arrowWidth; } public void setArrowWidth(int arrowWidth) { this.arrowWidth = arrowWidth; repaintControl(); } public int getBorderColor() { return borderColor; } public void setBorderColor(int borderColor) { this.borderColor = borderColor; repaintControl(); } public int getArrowBackColor() { return arrowBackColor; } public void setArrowBackColor(int arrowBackColor) { this.arrowBackColor = arrowBackColor; repaintControl(); } //日期顯示 private void setDateTime() { setSelectTypePos(selectType); Year = cl.get(Calendar.YEAR); Month = cl.get(Calendar.MONTH) + 1; Day = cl.get(Calendar.DAY_OF_MONTH); Hour = cl.get(Calendar.HOUR_OF_DAY); Minute = cl.get(Calendar.MINUTE); Second = cl.get(Calendar.SECOND); if (dateKind == SDAConsts.dkDate) { dateTime = String.valueOf(Year) + "-" + String.valueOf(Month) + "-" + String.valueOf(Day); } if (dateKind == SDAConsts.dkTime) { dateTime = String.valueOf(Hour) + ":" + String.valueOf(Minute) + ":" + String.valueOf(Second); } if (dateKind == SDAConsts.dkDateTime) { dateTime = String.valueOf(Year) + "-" + String.valueOf(Month) + "-" + String.valueOf(Day) + " " + String.valueOf(Hour) + ":" + String.valueOf(Minute) + ":" + String.valueOf(Second); } repaintControl(); } public String getDate() { return String.valueOf(Year) + "-" + String.valueOf(Month) + "-" + String.valueOf(Day); } public String getTime() { return String.valueOf(Hour) + ":" + String.valueOf(Minute) + ":" + String.valueOf(Second); } public String getDateTime() { return String.valueOf(Year) + "-" + String.valueOf(Month) + "-" + String.valueOf(Day) + " " + String.valueOf(Hour) + ":" + String.valueOf(Minute) + ":" + String.valueOf(Second); } public void setDate(int year, int month, int day) { setYear(year); setMonth(month); setDay(day); } public void setTime(int hour, int minute, int second) { setHour(hour); setMinute(minute); setSecond(second); } public void setDateTime(int year, int month, int day, int hour, int minute, int second) { setDate(year, month, day); setTime(hour, minute, second); } public int getDay() { return Day; } public void setDay(int Day) { try { cl.set(Calendar.DAY_OF_MONTH, Day); this.Day = Day; setDateTime(); } catch (Exception e) { } } public int getHour() { return Hour; } public void setHour(int Hour) { try { cl.set(Calendar.HOUR_OF_DAY, Hour); this.Hour = Hour; setDateTime(); } catch (Exception e) { } } public int getMinute() { return Minute; } public void setMinute(int Minute) { try { cl.set(Calendar.MINUTE, Minute); this.Minute = Minute; setDateTime(); } catch (Exception e) { } } public int getMonth() { return Month; } public void setMonth(int Month) { try { cl.set(Calendar.MONTH, Month); this.Month = Month; setDateTime(); } catch (Exception e) { } } public int getSecond() { return Second; } public void setSecond(int Second) { try { cl.set(Calendar.SECOND, Second); this.Second = Second; setDateTime(); } catch (Exception e) { } } public int getYear() { return Year; } public void setYear(int Year) { try { cl.set(Calendar.YEAR, Year); this.Year = Year; setDateTime(); } catch (Exception e) { } } public int getDateKind() { return dateKind; } public void setDateKind(int dateKind) { this.dateKind = dateKind; if (dateKind == SDAConsts.dkTime) { selectType = 3; } else { selectType = 0; } setSelectTypePos(selectType); setDateTime(); } public int getSelectedBackColor() { return selectedBackColor; } public void setSelectedBackColor(int selectedBackColor) { this.selectedBackColor = selectedBackColor; } public int getSelectedFontColor() { return selectedFontColor; } public void setSelectedFontColor(int selectedFontColor) { this.selectedFontColor = selectedFontColor; } //獲取修改類型位置 private void setSelectTypePos(int selectType) { int result = 0; Font ft = getFont(); int yearLen = ft.stringWidth(String.valueOf(Year)); int monthLen = ft.stringWidth(String.valueOf(Month)); int dayLen = ft.stringWidth(String.valueOf(Day)); int hourLen = ft.stringWidth(String.valueOf(Hour)); int minuteLen = ft.stringWidth(String.valueOf(Minute)); int secondLen = ft.stringWidth(String.valueOf(Second)); if (dateKind == SDAConsts.dkDate || dateKind == SDAConsts.dkDateTime) { switch (selectType) { case 0: result = 0; selectLen = yearLen; selectText = String.valueOf(Year); break; case 1: result = yearLen + ft.charWidth('-'); selectLen = monthLen; selectText = String.valueOf(Month); break; case 2: result = yearLen + monthLen + ft.stringWidth("--"); selectLen = dayLen; selectText = String.valueOf(Day); break; } } if (dateKind == SDAConsts.dkDateTime) { switch (selectType) { case 3: result = yearLen + monthLen + dayLen + ft.stringWidth("-- ");
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -