手机数字时钟动态显示

本文介绍了一个使用Java为MIDlet设备开发简单时间显示应用的例子。该应用利用了`javax.microedition.lcdui.Canvas`类来绘制更新的时间,并通过`Calendar`类获取当前时间,同时实现了每秒刷新界面以显示最新的时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. import java.util.Calendar;
  2. import java.util.TimeZone;
  3. import javax.microedition.lcdui.*;
  4. import javax.microedition.midlet.MIDlet;
  5. public class Exec extends MIDlet {
  6.     private Display display;
  7.     DrawPanel dp = new DrawPanel();
  8.     public Exec() {
  9.         display = Display.getDisplay(this);
  10.     }
  11.     public void startApp() {
  12.         display.setCurrent(dp);
  13.     }
  14.     public void pauseApp() {
  15.     }
  16.     public void destroyApp(boolean unconditional) {
  17.     }
  18. }
  19. class DrawPanel extends Canvas {
  20.     String str = "";
  21.     public DrawPanel() {
  22.     }
  23.     public void paint(Graphics g) {
  24.         g.setColor(255255255);
  25.         g.fillRect(00, getWidth(), getHeight());
  26.         g.setColor(000);
  27.         Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
  28.         calendar.set(Calendar.HOUR_OF_DAY, (calendar.get(Calendar.HOUR_OF_DAY) + 8) % 24);
  29.         int hour = calendar.get(Calendar.HOUR);
  30.         int min = calendar.get(Calendar.MINUTE);
  31.         int se = calendar.get(Calendar.SECOND)+1;
  32.         str = hour + " " + ":" + " " + min + " " + ":" + " " + se;
  33.         Font font = Font.getFont(Font.FACE_SYSTEM,
  34.                 Font.STYLE_BOLD,
  35.                 Font.SIZE_LARGE);
  36.         g.setFont(font);
  37.         int fontWidth = font.stringWidth(str);
  38.         int fontHeight = font.getHeight();
  39.         g.drawString(str, getWidth() / 2 - fontWidth / 2,
  40.                 getHeight() / 2 - fontHeight / 2, Graphics.TOP |
  41.                 Graphics.LEFT);
  42.         try {
  43.             Thread.sleep(1000);
  44.         } catch (InterruptedException e) {
  45.         }
  46.         repaint();
  47.     }
  48. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值