原创作者: wuhua
阅读:1322次
评论:0条
更新时间:2011-05-26
开放过项目的人都知道。用户的需求是时刻变化的。我们要做到的只是不断的去适应这种变化。因为给钱的是人家。
今天这篇文章让我们来学习怎么样设计一个可以在j2me低级UI上显示的时钟。经过前面几篇文章相信大家都知道我的UI设计思路了。我们现在要做的就是设计一个Part(这个是什么来的,呵呵。如果没看过我前面文章的朋友们,建议你们先读下,我想会有好处的。^_^)。
我的控件思路是这样的。首先在整个屏幕中拿出一小块出来。然后在这一小块里面绘制显示时间(时间可以是纯文字,也可以是图片等),然后我们实现Runnable接口,让它没秒钟都刷新一下那一小块屏幕。是不是很简单呢。呵呵。下面让我们来看下具体代码吧
具体的详细例子在: 手机电子书阅读软件基本框架 wuhua.iteye.com/admin/show/28821
看看这图片:
今天这篇文章让我们来学习怎么样设计一个可以在j2me低级UI上显示的时钟。经过前面几篇文章相信大家都知道我的UI设计思路了。我们现在要做的就是设计一个Part(这个是什么来的,呵呵。如果没看过我前面文章的朋友们,建议你们先读下,我想会有好处的。^_^)。
我的控件思路是这样的。首先在整个屏幕中拿出一小块出来。然后在这一小块里面绘制显示时间(时间可以是纯文字,也可以是图片等),然后我们实现Runnable接口,让它没秒钟都刷新一下那一小块屏幕。是不是很简单呢。呵呵。下面让我们来看下具体代码吧
java 代码
- /********************************************************************
- *
- * 版权说明,此程序仅供学习参考。不能用于商业
- *
- ********************************************************************/
- package org.pook.ui;
- import java.util.TimerTask;
- import javax.microedition.lcdui.Display;
- import javax.microedition.lcdui.Displayable;
- import javax.microedition.lcdui.Graphics;
- import org.pook.file.BookFileManager;
- import org.pook.log.Log;
- import org.pook.ui.core.Platform;
- import org.pook.ui.form.Panel;
- import org.pook.ui.timer.TimerTaskManager;
- import org.pook.ui.util.GraphicsUtil;
- import org.pook.util.DateTime;
- /**
- * 类名:TimerPart.java
- * 编写日期: 2006-9-29
- * 程序功能描述�?
- * Demo:
- * Bug:
- *
- * 程序变更日期
- * 变更作�??
- * 变更说明
- *
- * @author wuhua
- rrq12345@163.com
- */
- public class TimerPart extends Part implements Runnable{
- Log log = Log.getLog("TimerPart");
- /** 时间显示字段 */
- private static int hour ;
- private static int minute;
- private static int second;
- private static String time;
- /** 用于执行消失窗口 */
- protected TimerTask task;
- /** 获取系统时间 **/
- private DateTime dt;
- private Display display;
- private Displayable displayable;
- private String h;
- private String m;
- private String s;
- public TimerPart(Display display) {
- super(Platform.WIDTH - 45, 0, 45, 20);
- dt = new DateTime();
- hour = dt.hour ;
- minute = dt.minute ;
- second = dt.second ;
- time = hour + ":" + minute + ":" + second;
- task = TimerTaskManager.getInstace().add(this, 1000);
- this.display = display;
- }
- public void paint(Graphics g) {
- g.setColor(0x00000);
- g.drawString(time.toString(), view[X], view[Y], Graphics.TOP |
- Graphics.LEFT);
- // GraphicsUtil.darwString(g,new Boolean(BookFileManager.available()).toString(), view[X], view[Y]);
- }
- public void onClick(int keyCode) {
- }
- /**
- * 刷新时间的方法,每隔1秒钟刷新�?�?
- */
- public void run() {
- //更新时间
- updateTime();
- repaintTime();
- }
- /**
- * 这里本不应该与程序又任何关联的�?�但考虑到�?��??
- * �?以就先这样先
- *
- */
- private void repaintTime() {
- if(display == null)
- return;
- displayable = display.getCurrent();
- if(displayable instanceof Panel){
- Panel panel = (Panel)displayable;
- panel.repaintTimer();
- }
- }
- /**
- * 更新时间,频率是1�?
- *
- */
- private void updateTime() {
- second ++ ;
- if(second == 60){
- second = 0;
- minute ++ ;
- }
- if(minute == 60){
- minute = 0;
- hour ++ ;
- }
- if(hour == 24 && minute == 0){
- hour = 00;
- }
- h = hour<10?("0"+hour):hour + "" ;
- m = minute<10?("0"+minute):minute + "";
- s = second<10?("0"+second):second + "";
- time = h + ":" + m + ":" + s;
- }
- }
具体的详细例子在: 手机电子书阅读软件基本框架 wuhua.iteye.com/admin/show/28821
看看这图片:
评论 共 0 条 请登录后发表评论