1、NoteBook 类实现记事本功能;CalendarsView 类 则实现基本日历功能,ChooseDay 类 是一个弹窗,被CalendarsView 调用,CalendarsView 、AlarmDemo 也在该类被调用;CalendarMain -运行 .new CalendarsView();CalendarsView总的框架界面设计布局,日历功能的实现,对其他功能的调用 new AlarmDemo(); new NoteBook();AlarmDemo继承Jpanel ,运用线程 和applet 实现闹钟功能,到规定时间播放闹铃NoteBook继承Jpanel ,运用io ,可以保存
2、文本newChooseDay(null, year, month).setVisible(true);ChooseDay继承 JDialog ,让用户选择看那一年月的日历4. 日历界面使用了 jTable ,功能的实现逻辑则是1.首先定义两个全局变量-年和月,查看不同时间的日历,该变量也随之改变。2. 写了几个函数获取今年第一天是星期几,然后根据月份天数即可推算具体某月第一天是星期几。3. 知道一个月第一天是星期几,则该月日历既可以顺序列出。闹钟的功能实现思路:1. 获取界面设定的时间。2. 使用线程,每过一秒急救获取当前时间,并判断是否到达设定的时间3. 到设定的时间,启动弹窗,播放闹铃4.
3、 闹铃科根据文件选择器自行选择记事本功能实现思路1. 在项目文件夹先新建一个txt文件作为储存的数据库2. 利用File 类 和io 数据流将界面文本储存进txt文件,实现保存功能3. 每当程序启动,读取txt文件内容并显示到界面上三、测试分析1.使用如下拓展包2. 程序界面截图如下日历主界面闹钟界面记事本界面3. 测试流程及功能介绍(1) 点击上一月、下一月可查看不同月份日历,左下角显示当前时间。点击蓝色的日期栏可以回到当前页(2)点击圈中按钮会出现弹框,可以调节年、月,查看指定年月日历(3)闹铃可以使用默认闹铃,也能自定义选择闹铃,不过闹铃格式只能为wav或au时间到了以后出现弹框 ,并响
4、起闹铃(4)记事本输入文本,按保存即可。(5)点击最小化按钮,可以选择普通缩小或者直接缩小到托盘.附录:源代码(注:在工程目录下新建文件夹 source ,并添加了闹铃文件,txt,托盘图片,如图)AlarmDemo.javaimport java.applet.Applet;import java.applet.AudioClip;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionE
5、vent;import java.awt.event.ActionListener;import java.io.File;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import javax.swing.*;import javax.swing.text.DefaultFormatterFactory;import javax.swing.text.NumberFormatter;public class AlarmDemo extends JPanel implement
6、s Runnable private static final long serialVersionUID = -7066237267822356675L;Thread alarm;public AudioClip soumd1;Calendar c = Calendar.getInstance();JButton sure = new JButton(确定);JButton open = new JButton(可选择闹铃JLabel jLabel = new JLabel(设置 时间 日-时-分, JLabel.CENTER);JLabel dayLabel = new JLabel(日J
7、Label hourLabel = new JLabel(时JLabel minuteLabel = new JLabel(分JPanel jPanel1 = new JPanel();JPanel jPanel2 = new JPanel();JPanel jPanel3 = new JPanel();JPanel jPanel4 = new JPanel();JTextField music = new JTextField(System.getProperty(user.dir)+sourcealarm.wavint y = 0, m = 0, h = 0, mi = 0, d = 0;
8、boolean fo = false;public AlarmDemo() music.setEditable(false);/ 设置标签格式dayLabel.setFont(new Font(Dialog, 1, 30);hourLabel.setFont(new Font(minuteLabel.setFont(new Font(jLabel.setFont(new Font(/按钮设置sure.setContentAreaFilled(false);sure.setFocusPainted(false);open.setContentAreaFilled(false);open.setF
9、ocusPainted(false);JSpinner spinner1 = new JSpinner();JSpinner spinner2 = new JSpinner();JSpinner spinner3 = new JSpinner();spinner3.setModel(new SpinnerNumberModel(c.get(Calendar.DATE), 1, 31, 1);spinner1.setModel(new SpinnerNumberModel(c.get(Calendar.HOUR_OF_DAY),0, 23, 1);spinner2.setModel(new Sp
10、innerNumberModel(c.get(Calendar.MINUTE), 0, 59,1);/ 设置属性setSpinners(spinner1);setSpinners(spinner2);setSpinners(spinner3);jPanel4.add(jLabel);jPanel4.setPreferredSize(new Dimension(500, 100);jPanel1.setLayout(new GridLayout(1, 6);jPanel1.add(spinner3);jPanel1.add(dayLabel);jPanel1.add(spinner1);jPan
11、el1.add(hourLabel);jPanel1.add(spinner2);jPanel1.add(minuteLabel);jPanel1.setPreferredSize(new Dimension(500, 100);jPanel2.setLayout(new BorderLayout();jPanel2.add(jPanel4, BorderLayout.NORTH);jPanel2.add(music, BorderLayout.CENTER);jPanel2.add(open, BorderLayout.EAST);jPanel3.setLayout(new GridLayo
12、ut(1, 1);jPanel3.add(sure);setLayout(new BorderLayout();add(jPanel1, BorderLayout.NORTH);add(jPanel2, BorderLayout.CENTER);add(jPanel3, BorderLayout.SOUTH);open.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) JFileChooser fileChooser = new JFileChooser(); / 实例化文件选择器fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); / 设置文件选择模式,此处为文件和目录均可fileChooser.setCurrentDirectory(new File(.); / 设置文件选择器当前目录.setFileFilter(new javax.swing.filechooser.FileFilter() public boolean accept(File file) / 可接受的文件类型String name = file.getName().toLowerCase();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1