首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Timer构造器的有关问题

2012-02-29 
Timer构造器的问题import javax.swing.*import java.awt.event.*import java.awt.*import java.util.*

Timer构造器的问题
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;
import java.io.*;
import javax.swing.Timer.*;
import java.awt.geom.*;
import java.net.*;
import java.applet.*;
import java.util.Timer;

public class Clock extends Canvas implements ActionListener //刻画时钟
{  
  Date date;
  Timer secondtime;
  int hour,minute,second;
  int a,b,c;
  Line2D hourline,minuteline,secondline;
  URL url;
  AudioClip clip;
  double piontSX[] = new double[60]; //表示秒钟端点坐标
  double piontSY[] = new double[60];
  double piontMX[] = new double[60];
  double piontMY[] = new double[60];
  double piontHX[] = new double[60];
  double piontHY[] = new double[60];
  Clock()
  {
  secondtime = new Timer(1000,this);
  piontSX[0] = 0; //12点秒针坐标
  piontSY[0] = -100;
  piontMX[0] = 0;
  piontMY[0] = -90;
  piontHX[0] = 0;
  piontHY[0] = -70;
  double angle = 6 * Math.PI / 180;
  for(int i = 0;i < 59;i ++) //计算出各数组中的坐标
  {
  piontSX[i + 1] = piontSX[i] * Math.cos(angle) - Math.sin(angle) * piontSY[i];
  piontSY[i + 1] = piontSY[i] * Math.cos(angle) + piontSX[i] * Math.sin(angle);
  piontMX[i + 1] = piontMX[i] * Math.cos(angle) - Math.sin(angle) * piontMY[i];
  piontMY[i + 1] = piontMY[i] * Math.cos(angle) + piontMX[i] * Math.sin(angle);
  piontHX[i + 1] = piontHX[i] * Math.cos(angle) - Math.sin(angle) * piontHY[i];
  piontHY[i + 1] = piontHY[i] * Math.cos(angle) + piontHX[i] * Math.sin(angle);
  }
  for(int i = 0;i < 60;i ++) //坐标平移
  {
  piontSX[i] = piontSX[i] + 120;
  piontSY[i] = piontSY[i] + 120;
  piontMX[i] = piontMX[i] + 120;
  piontMX[i] = piontMX[i] + 120;
  piontHX[i] = piontHX[i] + 120;
  piontHX[i] = piontHX[i] + 120;
  }
  secondline = new Line2D.Double(0,0,0,0);
  minuteline = new Line2D.Double(0,0,0,0);
  hourline = new Line2D.Double(0,0,0,0);
secondtime.start();
  }
   
  public void paint(Graphics g)
  {
  for(int i = 0;i < 60;i ++)
  {
  int m = (int)piontSX[i];
  int n = (int)piontSY[i];
  if(i % 5 == 0)
  {
  g.setColor(Color.red);
  g.fillOval(m - 4, n - 4, 8, 8);
  }
  else
  {
  g.setColor(Color.cyan);
  g.fillOval(m - 2 , n - 2, 4, 4);
  }
  }
  g.fillOval(115,115,10,10);
  Graphics2D g_2d = (Graphics2D)g; //刻画秒针
  g_2d.setColor(Color.red);
  g_2d.draw(secondline);
  //刻画分针
  BasicStroke bs = new BasicStroke(3f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER);
  g_2d.setStroke(bs);
  g_2d.setColor(Color.blue);
  g_2d.draw(minuteline);
  bs = new BasicStroke(6f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER);
  g_2d.setStroke(bs);
  g_2d.setColor(Color.green);
  g_2d.draw(hourline);
  }
  public void actionPerformed(ActionEvent e)
  {
  if(e.getSource() == secondtime)


  {
  date = new Date();
  String s = date.toString();
  hour = Integer.parseInt(s.substring(11, 13));
  minute = Integer.parseInt(s.substring(14, 16));
  second = Integer.parseInt(s.substring(17, 19));
  int h = hour % 12;
  a = second;
  b = minute;
  c = h * 5 + minute / 12;
  secondline.setLine(120,120,(int)piontSX[a],(int)piontSY[a]);
  minuteline.setLine(120,120,(int)piontMX[b],(int)piontMY[b]);
  hourline.setLine(120,120,(int)piontHX[c],(int)piontHY[c]);
  repaint();
  if(minute == 0 && second == 0)
  {
  try
  {
  File musicFile = new File("孙欣-转身之间(钢琴版).mp3");
  url = musicFile.toURL();
  clip = Applet.newAudioClip(url);
  clip.play();
  }
  catch(Exception ex) {}
  }
  }
  }
}


写一个绘制时钟的类,但是上面红颜色的两行代码,显示没有构造器,麻烦大家帮我看看吧,谢谢

[解决办法]
很明显你使用的是javax.swing.Timer,那怎么还在头部 import java.util.Timer;
[解决办法]
类引入错误 改import语句
[解决办法]

探讨
很明显你使用的是javax.swing.Timer,那怎么还在头部 import java.util.Timer;

热点排行