1.java ?闹钟闹钟???Դ??
2.跪求高手帮忙写一个JAVA手机闹钟程序 实现添加铃声和设置多闹钟
3.用Java写一个闹钟 每天早上6点30响 怎么做
4.有没有JAVA闹钟的小程序啊~不要太复杂,越简单越好啊~分大大的源码加啦!急!代码!闹钟闹钟!源码!代码仿山楂岛源码!闹钟闹钟!源码!代码!闹钟闹钟!源码!代码!闹钟闹钟!源码
java ?代码宝石迷阵源码???Դ??
代码如下:
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineEvent;
import javax.sound.sampled.LineListener;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
/
*** 闹钟主界面
*/
public class AlarmClock extends JFrame implements ActionListener {
private static final int LOOP_COUNT = 5; // 重复播放的次数
private JLabel labelClock, labelAlarm, labelNextAlarm;
private JButton btnSet, btnClose;
private SetDialog setDialog;
private JPanel topPanel, alarmPanel;
private Timer timer;
private Clip clip;
private Calendar alarmCal;
private boolean timeReached = true;
private DateFormat df = new SimpleDateFormat(
跪求高手帮忙写一个JAVA手机闹钟程序 实现添加铃声和设置多闹钟
import java.util.*;
import java.awt.*;
import java.applet.*;
import java.text.*;
public class AlarmClock extends Applet implements Runnable
{
Thread timer=null; //创建线程timer
Image clockp,gif1,gif2,clock6,clock7; //clockp:闹钟的外壳,闹铃和报时鸟
int s,m,h,hh;
AudioClip ipAu,danger,chirp;
boolean canPaint=true;
boolean flag=false;
boolean strike=true;
int counter=0;
int lasts;
Image offscreen_buf=null;
int i,j,t=0;
int timeout=;
int lastxs=0,lastys=0,lastxm=0,lastym=0,lastxh=0,lastyh=0;
Date dummy=new Date(); //生成Data对象
GregorianCalendar cal=new GregorianCalendar();
SimpleDateFormat df=new SimpleDateFormat("yyyy MM dd HH:mm:ss");//设置时间格式
String lastdate=df.format(dummy);
Font F=new Font("TimesRoman",Font.PLAIN,);//设置字体格式
Date dat=null;
Date timeNow=null;
Color fgcol=Color.blue;
Color fgcol2=Color.darkGray;
Panel setpanel;
Color backcolor=Color.pink;
TextField showhour,showmin,showsec,sethour,setmin,setsec;//显示当前时间文本框和定时文本框
Button onbutton;
Button offbutton;
Label hlabel1,mlabel1,slabel1,hlabel2,mlabel2,slabel2;//显示时间单位时所用的标签(时、分、秒)
Label info1=new Label("欢迎使用定时提醒闹钟"),info2=new Label("");
Label note1=new Label("当前时间:"),note2=new Label("闹钟设置:");
boolean setalerm=false,clickflag=false;//判断是否响铃和振动
int fixh=0,fixm=0,fixs=0;//记录闹钟的定时
public void init()//初始化方法
{
Integer gif_number;
int fieldx=,fieldy1=,fieldy2=,fieldw=,fieldh=,space=;//显示时间和定时文本框的定位参数
setLayout(null); //将布局管理器初始化为null
setpanel=new Panel();
setpanel.setLayout(null);
setpanel.add(note1);
setpanel.add(note2);
note1.setBounds(,,,);
note1.setBackground(backcolor);
note1.setForeground(Color.black);
note2.setBounds(,,,);
note2.setBackground(backcolor);
note2.setForeground(Color.black);
hlabel1=new Label();
mlabel1=new Label();
slabel1=new Label();
hlabel2=new Label();
mlabel2=new Label();
slabel2=new Label();
//显示当前时间用的文本框
showhour=new TextField("",5);
showmin=new TextField("",5);
showsec=new TextField("",5);
//定时用的文本框(时、分、秒)
sethour=new TextField("",5);
setmin=new TextField("",5);
setsec=new TextField("",5);
//当前时间用的文本框的位置、大小
setpanel.add(showhour);
showhour.setBounds(fieldx,fieldy1,fieldw,fieldh);
showhour.setBackground(Color.white);
//在文本框后加入单位“时”
setpanel.add(hlabel1);
hlabel1.setText("时");
hlabel1.setBackground(backcolor);
hlabel1.setForeground(Color.black);
hlabel1.setBounds(fieldx+fieldw+3,fieldy1,,);
fieldx=fieldx+space;
//当前时间的分钟文本框的位置、大小
setpanel.add(showmin);
showmin.setBounds(fieldx,豆瓣java源码fieldy1,fieldw,fieldh);
showmin.setBackground(Color.white);
//在文本框后加入单位“分”
setpanel.add(mlabel1);
mlabel1.setText("分");
mlabel1.setBackground(backcolor);
mlabel1.setForeground(Color.black);
mlabel1.setBounds(fieldx+fieldw+3,fieldy1,,);
fieldx=fieldx+space;
//当前时间的秒文本框的位置、大小
setpanel.add(showsec);
showsec.setBounds(fieldx,fieldy1,fieldw,fieldh);
showsec.setBackground(Color.white);
//在文本框后加入单位“秒”
setpanel.add(slabel1);
slabel1.setText("秒");
slabel1.setBackground(backcolor);
slabel1.setForeground(Color.black);
slabel1.setBounds(fieldx+fieldw+3,fieldy1,,);
fieldx=;
//定时的小时文本框的位置、大小
setpanel.add(sethour);
sethour.setBounds(fieldx,fieldy2,fieldw,fieldh);
sethour.setBackground(Color.white);
//在文本框后加入单位“时”
setpanel.add(hlabel2);
hlabel2.setText("时");
hlabel2.setBackground(backcolor);
hlabel2.setForeground(Color.black);
hlabel2.setBounds(fieldx+fieldw+3,fieldy2,,);
fieldx=fieldx+space;
//定时的分钟文本框的位置、大小
setpanel.add(setmin);
setmin.setBounds(fieldx,fieldy2,fieldw,fieldh);
setmin.setBackground(Color.white);
//在文本框后加入单位“分”
setpanel.add(mlabel2);
mlabel2.setText("分");
mlabel2.setBackground(backcolor);
mlabel2.setForeground(Color.black);
mlabel2.setBounds(fieldx+fieldw+3,fieldy2,,);
fieldx=fieldx+space;
//定时的秒文本框的位置、大小
setpanel.add(setsec);
setsec.setBounds(fieldx,fieldy2,fieldw,fieldh);
setsec.setBackground(Color.white);
//在文本框后加入单位“秒”
setpanel.add(slabel2);
slabel2.setText("秒");
slabel2.setBackground(backcolor);
slabel2.setForeground(Color.black);
slabel2.setBounds(fieldx+fieldw+3,fieldy2,,);
//设置闹钟控制按钮(on,off)
onbutton=new Button("开");
offbutton=new Button("关");
setpanel.add(onbutton);
setpanel.add(offbutton);
onbutton.setBounds(,,,);
offbutton.setBounds(,,,);
//加入一些附加的信息标签(题头,题尾)
setpanel.add(info1);
info1.setBackground(backcolor);
info1.setForeground(Color.blue);
info1.setBounds(,,,);
setpanel.add(info2);
info2.setBackground(backcolor);
info2.setForeground(Color.blue);
info2.setBounds(,,,);
//将面板加入当前容器中,并设置面板的大小和背景色
add(setpanel);
setpanel.setBounds(,1,,);
setpanel.setBackground(backcolor);
//获取声音文件
ipAu=getAudioClip(getDocumentBase(),"bells/仙剑.mid");
danger=getAudioClip(getDocumentBase(),"bells/0.mid");
chirp=getAudioClip(getDocumentBase(),"bells/3.mid");
int xcenter,ycenter,s,m,h;
xcenter=;
ycenter=;
s=(int)cal.get(Calendar.SECOND);
m=(int)cal.get(Calendar.MINUTE);
h=(int)cal.get(Calendar.HOUR_OF_DAY);
//初始化指针位置
lastxs=(int)(Math.cos(s*3.f/-3.f/2)*+xcenter);
lastys=(int)(Math.sin(s*3.f/-3.f/2)*+ycenter);
lastxm=(int)(Math.cos(m*3.f/-3.f/2)*+xcenter);
lastym=(int)(Math.sin(m*3.f/-3.f/2)*+ycenter);
lastxh=(int)(Math.cos((h*+m/2)*3.f/-3.f/2)*+xcenter);
lastyh=(int)(Math.sin((h*+m/2)*3.f/-3.f/2)*+ycenter);
lasts=s;
MediaTracker mt=new MediaTracker(this);//创建Tracke对象
clockp=getImage(getDocumentBase(),"休闲.png");
gif1=getImage(getDocumentBase(),"gif1.gif");
gif2=getImage(getDocumentBase(),"gif2.gif");
clock6=getImage(getDocumentBase(),"clock6.gif");
clock7=getImage(getDocumentBase(),"clock7.gif");
mt.addImage(clockp,i++);
mt.addImage(gif1,i++);
mt.addImage(gif2,i++);
mt.addImage(clock6,i++);
mt.addImage(clock7,i++);
try{ mt.waitForAll();}catch(InterruptedException e){ };//等待加载结束
resize(,);//设置窗口大小
}
public void paint(Graphics g){ //重写paint()方法
int xh,yh,xm,ym,xs,ys,strike_times;
int xcenter,ycenter;
String today;
Integer gif_number;
xcenter=;
ycenter=;
dat=new Date();
cal.setTime(dat);
//读取当前时间
s=(int)cal.get(Calendar.SECOND);
m=(int)cal.get(Calendar.MINUTE);
h=(int)cal.get(Calendar.HOUR_OF_DAY);
today=df.format(dat);
//指针位置
xs=(int)(Math.cos(s*3.f/-3.f/2)*+xcenter);
ys=(int)(Math.sin(s*3.f/-3.f/2)*+ycenter);
xm=(int)(Math.cos(m*3.f/-3.f/2)*+xcenter);
ym=(int)(Math.sin(m*3.f/-3.f/2)*+ycenter);
xh=(int)(Math.cos((h*+m/2)*3.f/-3.f/2)*+xcenter);
yh=(int)(Math.sin((h*+m/2)*3.f/-3.f/2)*+ycenter);
//设置字体和颜色
g.setFont(F);
g.setColor(fgcol);
g.setColor(fgcol2);
g.setColor(getBackground());
g.fillRect(1,1,,);
g.drawImage(clockp,,,this);
g.drawImage(clock6,,,this);
g.setColor(fgcol2);
g.setColor(getBackground());
g.setColor(fgcol2);
//以数字方式显示年、月、食谱网源码日和时间
g.drawString(today,,);
g.drawLine(xcenter,ycenter,xs,ys);
g.setColor(fgcol);
//画指针
g.drawLine(xcenter,ycenter-1,xm,ym);
g.drawLine(xcenter-1,ycenter,xm,ym);
g.drawLine(xcenter,ycenter-1,xh,yh);
g.drawLine(xcenter-1,ycenter,xh,yh);
lastxs=xs;lastys=ys;
lastxm=xh;lastym=ym;
lastxh=xh;lastyh=yh;
lastdate=today;
if(h<)hh=h;//将系统时间变换到0-区间
else hh=h-;
if(hh==0) strike_times=;//计算整点时钟声数
else strike_times=hh;
if((s==0&&m==0)||flag){ //判断是否整点,是否是主动刷新
if(counter<strike_times){
flag=true;
g.drawImage(gif2,,,this);
if(lasts!=s){
if(strike){
counter++;
danger.play();//播放闹铃声
}
if(strike)strike=false;
else strike=true;
}
}
else {
counter=0;
flag=false;
}
}
else
g.drawImage(gif1,,,this);
int timedelta;//记录当前时间与闹铃定时的时差
Integer currh,currm,currs;//分别记录当前的时、分、秒
timeNow=new Date();
currh=new Integer(timeNow.getHours());
currm=new Integer(timeNow.getMinutes());
currs=new Integer(timeNow.getSeconds());
//判断是否要更新当前显示的时间,这样可以避免文本框出现频率闪动
if(currh.intValue()!=Integer.valueOf(showhour.getText()).intValue())
showhour.setText(currh.toString());
if(currm.intValue()!=Integer.valueOf(showmin.getText()).intValue())
showmin.setText(currh.toString());
if(currs.intValue()!=Integer.valueOf(showsec.getText()).intValue())
showsec.setText(currh.toString());
if(setalerm){ //判断是否设置了闹钟
//判断当前时间是否为闹钟所定的时间
if((currh.intValue()==fixh)&&(currm.intValue()==fixm)&&(currs.intValue()==fixs))
clickflag=true;
timedelta=currm.intValue()*+currs.intValue()-fixm*-fixs;
if((timedelta<)&&(clickflag==true)){ //若当前时间与闹钟相差时间达到秒
chirp.play();
g.drawImage(clock7,,,this);
}
else{
chirp.stop();
clickflag=false;
}
}
if(lasts!=s)
ipAu.play();//播放滴答声
lasts=s;
if(canPaint){
t+=1;
if(t==)t=0;
}
canPaint=false;
dat=null;
}
public void start(){
if(timer==null){
timer=new Thread(this);//将timer实例化
timer.start();
}
}
public void stop(){
timer=null;
}
public void run(){
while(timer!=null){
try{ timer.sleep(timeout);}catch(InterruptedException e){ }
canPaint=true;
repaint();//刷新画面
}
timer=null;
}
public void update(Graphics g){ //采用双缓冲技术的update()方法
if(offscreen_buf==null)
offscreen_buf=createImage(,);
Graphics offg=offscreen_buf.getGraphics();
offg.clipRect(1,1,,);
paint(offg);
Graphics ong=getGraphics();
ong.clipRect(1,1,,);
ong.drawImage(offscreen_buf,0,0,this);
}
public boolean action(Event evt,Object arg){ //按钮事件处理函数
if(evt.target instanceof Button){
String lable=(String)arg;
if(lable.equals("开")){
setalerm=true;
//获取输入的时间
fixh=Integer.valueOf(sethour.getText()).intValue();
fixm=Integer.valueOf(setmin.getText()).intValue();
fixs=Integer.valueOf(setsec.getText()).intValue();
clickflag=false;
}
if(lable.equals("关")){
setalerm=false;
if(chirp!=null)
chirp.stop();
clickflag=false;
}
return true;
}
return false;
}
}
用Java写一个闹钟 每天早上6点响 怎么做
计时器,每分钟或每秒执行一次,获取当前系统时间,婚礼猫 源码判断是 6. 的话,响。。quartz 作业jar包。设定执行作业时间,设定执行内容,然后运行。
其他作业实现。
有没有JAVA闹钟的小程序啊~不要太复杂,越简单越好啊~分大大的加啦!急!!!!!!!!!!!!
这个是我能想到的除了系统任务之外,最简单最节省系统资源的了
import java.io.File;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Alert {
public static void main(String args[]){
long time;
String video=null;
String msg=null;
try{
//设置
String strtime=JOptionPane.showInputDialog("输入时间:hh:mm");
String t[]=strtime.split(":");
int hh=Integer.parseInt(t[0]);
int mm=Integer.parseInt(t[1]);
video=JOptionPane.showInputDialog("输入音频路径:(为空则不需要音频)");
if(!new File(video).exists())
video=null;
msg=JOptionPane.showInputDialog("闹钟提示信息:");
//计算
hh-=Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
mm-=Calendar.getInstance().get(Calendar.MINUTE);
if(mm<0){
mm+=;
hh--;
}
if(hh<0){
hh+=;
}
time=((hh*+mm)*-Calendar.getInstance().get(Calendar.SECOND))*;
//等待
Thread.sleep(time);
//执行
if(video!=null){
try{
Runtime.getRuntime().exec("start "+video);
}catch(Exception e){
msg+="\n音频文件加载失败!";
}
}
JOptionPane.showMessageDialog(new JFrame(), strtime+"\n"+msg);
}catch(Exception e){
JOptionPane.showMessageDialog(new JFrame(),"闹钟任务失败,原因未明!");
}
}
}