⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clockcanvas.java

📁 java移动通信程序设计
💻 JAVA
字号:
import javax.microedition.lcdui.*;

public class ClockCanvas extends Canvas {

  private int hour;
  private int minute;
  private int second;
  protected int xCenter, yCenter;
  protected int clockRadius;
  int width = 0;
  int height = 0;

  ClockCanvas(int hour, int minute, int second){
    this.hour = hour;
    this.minute = minute;
    this.second = second;
  }

  // Draw the clock
  public void paint(Graphics g){
	  width = getWidth();
	  height = getHeight();


	  g.setGrayScale(255);
	  g.fillRect(0,0,width-1,height-1);
	  g.setGrayScale(0);
      g.drawRect(0,0,width-1,height-1);

    // Initialize clock parameters
   //  clockRadius = (int)(Math.min(width,height)*0.7*0.5);
     clockRadius = Math.min(width,height)-20;


      xCenter = getWidth()/2;
      yCenter = getHeight()/2;


    g.drawArc(10,12,clockRadius,clockRadius,0,360);

/*    g.drawOval(xCenter - clockRadius,yCenter - clockRadius,
      2*clockRadius, 2*clockRadius);*/

    g.drawString("12",xCenter,0,Graphics.TOP|Graphics.HCENTER);
    g.drawString("9",1,yCenter,Graphics.BASELINE|Graphics.LEFT);
    g.drawString("3",width-1,yCenter,Graphics.BASELINE|Graphics.RIGHT);
    g.drawString("6",xCenter,height,Graphics.BOTTOM|Graphics.RIGHT);

    // Draw second hand
 //   int sLength = (int)(clockRadius*0.9);
 //   int xSecond =
 //     (int)(xCenter + sLength*Math.sin(second*(2*Math.PI/60)));
    int ySecond = 15/clockRadius*second*10000;
 //     (int)(yCenter - sLength*Math.cos(second*(2*Math.PI/60)));
 //   g.setColor(Color.red);
    g.drawLine(xCenter, yCenter, clockRadius+ySecond, ySecond);

    // Draw minute hand
/*    int mLength = (int)(clockRadius*0.75);
    int xMinute =
      (int)(xCenter + mLength*Math.sin(minute*(2*Math.PI/60)));
    int yMinute =
      (int)(yCenter - mLength*Math.cos(minute*(2*Math.PI/60)));
    g.setColor(Color.blue);
    g.drawLine(xCenter, yCenter, xMinute, yMinute);

    // Draw hour hand
    int hLength = (int)(clockRadius*0.6);
    int xHour = (int)(xCenter +
      hLength*Math.sin((hour+minute/60.0)*(2*Math.PI/12)));
    int yHour = (int)(yCenter -
      hLength*Math.cos((hour+minute/60.0)*(2*Math.PI/12)));
    g.setColor(Color.green);
    g.drawLine(xCenter, yCenter, xHour, yHour);

    // Display current time in string
    g.setColor(Color.red);
    String time = "Hour: " + hour + " Minute: " + minute +
      " Second: " + second;
    FontMetrics fm = g.getFontMetrics();
    g.drawString(time, (getSize().width -
      fm.stringWidth(time))/2, yCenter+clockRadius+30);*/
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -