j2me中时间的显示

自从上了cisco的课程之后,好久没有动过j2me的代码,好怀念阿,还是me的东西带劲。
现在无聊随便写个时间的显示,也别忘了这些方法,虽然eclipse都会自动提醒,但是还是在vim中写出来才会将基本永远的记住,怎么说来着,重要的在于基础,有基础了学什么也就顺手了。:)
/**
 * @Author : DavidZou
 * @Date: 2008/09/10
 *
 */
public class StartMIDlet extends MIDlet {
    private MainController main;
    public StartMIDlet() {
        main = new MainController(this);
    }
    protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
        main = null;
    }
    protected void pauseApp() {
       
    }
    protected void startApp() throws MIDletStateChangeException {
        main.init();
    }
}
class MainController {
    private StartMIDlet midlet;
    private FirstForm form;
    private ClockCanvas clock;
    public MainController(StartMIDlet midlet){
        this.midlet = midlet;
    }
    public void init(){
        if(form == null)
            form = new FirstForm("The First", this);
        setCurrent(form);
    }
    public void clock(){
        clock = new ClockCanvas(this);
        setCurrent(clock);
    }
    public void setCurrent(Displayable dis){
        Display.getDisplay(midlet).setCurrent(dis);
    }
    public void quit(){
        try {
            midlet.destroyApp(false);
        } catch (MIDletStateChangeException e) {
            e.printStackTrace();
        }
        midlet.notifyDestroyed();
    }
}
class FirstForm extends Form implements CommandListener{
    private MainController main;
    private Command exitCommand = new Command("Exit", Command.EXIT, 0);
    private Command clockCommand = new Command("Clock", Command.ITEM, 1);
    private TextField tf = new TextField("Time:", "", 100, TextField.ANY | TextField.UNEDITABLE);
    public FirstForm(String title, MainController main){
        super(title);
        this.main = main;
        this.addCommand(exitCommand);
        this.addCommand(clockCommand);
        this.append(tf);
        tf.setString(new Time().toString());
        this.setCommandListener(this);
    }
    public void commandAction(Command c, Displayable d){
        if(c == exitCommand){
            main.quit();
        }
        if(c == clockCommand){
            main.clock();
        }
    }
    public String getString(){
        return tf.getString();
    }
    public void setString(String str){
        tf.setString(str);
    }
}
class ClockCanvas extends Canvas implements Runnable, CommandListener{
    private MainController main;
    private Command exitCommand = new Command("Exit", Command.EXIT, 0);
    private Command backCommand = new Command("Back", Command.BACK, 1);
    public ClockCanvas(MainController main){
        this.main = main;
        this.addCommand(exitCommand);
        this.addCommand(backCommand);
        this.setCommandListener(this);
        new Thread(this).start();
    }
    public void run(){
        while(true){
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            repaint();
        }
    }
    public void paint(Graphics g){
        g.setColor(0xFFFFFF);
        g.fillRect(0, 0, this.getWidth(), this.getHeight());
        drawTime(g, getCurrentTime());
    }
    public void commandAction(Command c, Displayable dis){
        if(c == exitCommand){
            main.quit();
        }
        if(c == backCommand){
            main.init();
        }
    }
    public void drawTime(Graphics g, String str){
        System.out.println(str);
        g.setColor(0x000000);
//        g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.SIZE_MEDIUM, Font.STYLE_BOLD));
        g.drawString(str, 10, 100, Graphics.TOP | Graphics.LEFT);
    }
    public String getCurrentTime(){
        return new Time().toString();
    }
}
class Time extends Calendar{
    private int year;
    private String month;
    private String date;
    private String hour;
    private String minute;
    private String second;
   
    public Time(){
        setYear(getInstance().get(YEAR));
        setMonth(getInstance().get(MONTH));
        setDate(getInstance().get(DATE));
        setHour(getInstance().get(HOUR_OF_DAY));
        setMinute(getInstance().get(MINUTE));
        setSecond(getInstance().get(SECOND));
    }
    public int getYear() {
        return year;
    }
    public void setYear(int year) {
        this.year = year;
    }
    public String getMonth() {
        return month;
    }
    public void setMonth(int month) {
        if(month < 10)
            this.month = "0" + (month + 1);
        else
            this.month = String.valueOf((month + 1));
    }
    public String getDate() {
        return date;
    }
    public void setDate(int date) {
        if(date < 10)
            this.date = "0" + date;
        else
            this.date = String.valueOf(date);
    }
    public String getHour() {
        return hour;
    }
    public void setHour(int hour) {
        if(hour < 10)
            this.hour = "0" + hour;
        else
            this.hour = String.valueOf(hour);
    }
    public String getMinute() {
        return minute;
    }
    public void setMinute(int minute) {
        if(minute < 10)
            this.minute = "0" + minute;
        else
            this.minute = String.valueOf(minute);
    }
    public String getSecond() {
        return second;
    }
    public void setSecond(int second) {
        if(second < 10)
            this.second = "0" + second;
        else
            this.second = String.valueOf(second);
    }
    public String toString(){
        return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;
    }
    protected void computeFields() {
       
    }
    protected void computeTime() {
       
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值