java日历记事本(无敌版带提醒功能调整时区更换图片铃声功能) 联系客服

发布时间 : 星期五 文章java日历记事本(无敌版带提醒功能调整时区更换图片铃声功能)更新完毕开始阅读

SimpleDateFormat sdf = new SimpleDateFormat(\年MM月dd日 hh:mm:ss a\

sdf.setTimeZone(TimeZone.getTimeZone(CalendarPad.timeArea)); String s_time_msg = sdf.format(timenow); nowClock = new Clock(

calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND) );

g.clearRect(0,0,this.getWidth(),this.getHeight()); g.setFont(new Font(\宋体\ g.drawString(s_time_msg,70,400); nowClock.show(g,230,210,150);

//闹钟功能:如果当前时间与 设置的闹钟时间相同,则响铃;

if((ringhour==calendar.get(Calendar.HOUR_OF_DAY))&&(ringmin==calendar.get(Calendar.MINUTE))&&(calendar.get(Calendar.SECOND)==0)) {

//播放指定音频; try { URL cb;

File f = new File(CalendarPad.musicname);//音频文件; cb = f.toURL(); AudioClip aau;

aau = Applet.newAudioClip(cb); //创建AudioClip对象; aau.play();//播放音频;

} catch (MalformedURLException e) {

e.printStackTrace(); } } } }

class Clock {

int hour,minute,second;

Clock(int hrs,int min,int sec) { hour = hrs; minute = min; second = sec; }

void show(Graphics g,int cx,int cy,int rad) { int hrs_len = (int)(rad*0.5); int sec_len = (int)(rad*0.9); double theta;

g.drawOval(cx-rad,cy-rad,rad*2,rad*2);

theta=(double)(hour*60*60+minute*60+second)/43200.0*2.0*Math.PI ; drawNiddle(g,Color.blue,cx,cy,hrs_len,theta);

theta=(double)(minute*60+second)/3600.0*2.0*Math.PI ; drawNiddle(g,Color.red,cx,cy,sec_len,theta); theta=(double)(second)/60.0*2.0*Math.PI ; drawNiddle(g,Color.green ,cx,cy,sec_len,theta); }

private void drawNiddle(

Graphics g,Color c,int x,int y,int len,double theta){ int ex = (int)(x+len*Math.sin(theta)); int ey = (int)(y-len*Math.cos(theta)); g.setColor (c);

g.drawLine(x,y,ex,ey); } }

Year.java

package diaoshizhe;

import javax.swing.*; import java.awt.*; import java.awt.event.*;

//继承Box,显示日历上的年份

public class Year extends Box implements ActionListener { /**

* */

private static final long serialVersionUID = 1L;

int year; //定义年; JTextField showYear=null;//显示年的区域; JButton nextYear,lastYear;//定义按钮; CalendarPad calendar;//日历;

//构造方法;

public Year(CalendarPad calendar) {

super(BoxLayout.X_AXIS);//用super继承父类的构造方法,box中的组件从左到右布置器件;

showYear=new JTextField(4); //区域大小设置;

showYear.setForeground(Color.blue); //显示字体颜色;

showYear.setFont(new Font(\,Font.BOLD,14)); //设置字体,大小;

//把calendar的时间传进来; this.calendar=calendar; year=calendar.getYear(); //新建按钮;

nextYear=new JButton(\下年\); lastYear=new JButton(\上年\); //添加按钮;

add(lastYear); add(showYear); add(nextYear);

//添加事件监听器;

showYear.addActionListener(this); lastYear.addActionListener(this); nextYear.addActionListener(this); }

//设置年;

public void setYear(int year) {

this.year=year;

showYear.setText(\+year); }

//获取年;

public int getYear() {

return year; }

//事件监听方法;

public void actionPerformed(ActionEvent e) {

//如果点击的是lastyear按钮;

if(e.getSource()==lastYear) {

//年减去一年,重新设置日历; year=year-1;

showYear.setText(\+year); calendar.setYear(year);

calendar.setCalendar(year,calendar.getMonth()); }

//如果点击的是nextyear按钮;

else if(e.getSource()==nextYear) {

//年增加一年,重新设置日历; year=year+1;

showYear.setText(\+year); calendar.setYear(year);

calendar.setCalendar(year,calendar.getMonth()); }

//如果是在显示年的区域内写入东西; else if(e.getSource()==showYear) { try {

//获取写在该区域的内容,转化为整型,赋给year,重新设置日历; year=Integer.parseInt(showYear.getText()); showYear.setText(\+year); calendar.setYear(year);

calendar.setCalendar(year,calendar.getMonth()); }

catch(NumberFormatException ee) {

showYear.setText(\+year); calendar.setYear(year);

calendar.setCalendar(year,calendar.getMonth()); } } } }

Month.java

package diaoshizhe;

import javax.swing.*; import java.awt.*;

import java.awt.event.*;

//继承Box,用于显示日历上的月份,并可选择上月,下月; public class Month extends Box implements ActionListener { /** * */ private static final long serialVersionUID = 1L; int month; JTextField showMonth=null; JButton nextMonth,lastMonth; CalendarPad calendar;