java课程设计_简单日历程序 下载本文

课程设计题目

2. 题目说明

通过编写一个基于JAVA的应用系统综合实例,自定义一个日历组件显示日期和时间并进行适当的功能扩充,实践Java语言编程技术。 3. 系统设计 2.1 设计目标

一个完整的程序应具有以下功能: 1)显示当月日历、当前日期、当前时间; 2)可查寻任意月以及任意年的日历; 3)使用图形化界面能够弹出对话框; 5)正常退出程序。 2.2 设计思想

设计一个类用来构成日历系统的主窗口,然后编写一个框架类显示时间和提示信息。在设计中应用了多种容器和控件。 2.3 系统模块划分

public static class CalendarTable(日历类) public class MyCalendar extends JApplet (主日历框架类) public static void main(String[] args) public static class RollbyJFrame (滚动时间类) 图1:简易日

历的程序结构图

2.3.1 初始化:

public void init()完成界面初始化,形成一个以挂历形式显示当前日期的

窗口。

2.3.2 日历描述:

(1)public void updateView()改变日期后完成更新界面;

(2)获取系统日期并传递日期数据而且在人工改变日期后得出当天是周几; (3)public static void main(String[] args) 主函数完成系统各算法的调用并对主窗口的一些属性进行设置; 2.3.3 滚动时间:

将时间以文本的形式在文本框中滚动播出,并能改变滚动的速度。 4. 使用类及接口

仅仅简单说明类的功能,详细资料请参看 《JavaTM 2 Platform Standard Ed. 6》的电子文档,常规的接口与包则省略不屑。 //以下是日历程序块中使用的类 package fancy; import java.awt.*;

import java.util.*; //主要用此包中的日期和时间类 import javax.swing.*;

//以下是对滚动时间程序块所使用的类和接口, 用到定时器类Timer 、

//用于监听鼠标单击(焦点改变)事件 //用于响应鼠标单击(焦点改变)事件、

//让用户从一个有序序列中选择一个数字或者一个对象值的单行输入字段。 //在指定时间间隔触发一个或多个 ActionEvent, 创建一个 Timer 对象,在该对象上注册一个或多个动作侦听器,以及使用 start 方法启动该计时器。并配合事件监听器支持时间的滚动播放。 5. 运行结果与分析

图2:初始界面显示日历。 图3:点击查看时间按钮, 弹出时间消息对话框。

图4:滚动显示当前时间。

6. 程序源代码 /**

* @(#) MyCalendar.java * @author fancy */

//日历使用的类 //日历

public class MyCalendar extends JApplet {

public static final String WEEK_SUN = \ public static final String WEEK_MON = \ public static final String WEEK_TUE = \ public static final String WEEK_WED = \ public static final String WEEK_THU = \ public static final String WEEK_FRI = \ public static final String WEEK_SAT = \

public static final Color background = Color.yellow; public static final Color foreground = Color.black;

public static final Color headerBackground = Color.blue; public static final Color headerForeground = Color.white; public static final Color selectedBackground = Color.blue; public static final Color selectedForeground = Color.white; private JPanel cPane;

private JLabel yearsLabel; private JSpinner yearsSpinner; private JLabel monthsLabel;

private JComboBox monthsComboBox; private JTable daysTable;

private AbstractTableModel daysModel; private Calendar calendar; private JButton button1; public MyCalendar() {

cPane = (JPanel) getContentPane(); }

public void init() {

cPane.setLayout(new BorderLayout()); calendar = Calendar.getInstance(); calendar = Calendar.getInstance();

JButton button1=new JButton(\单击此处 查看时间 \ button1.setBounds(10,10,10,10);

cPane.add(button1,BorderLayout.SOUTH); button1.addActionListener(

{public void actionPerformed(ActionEvent e) { RollbyJFrame myrili=new RollbyJFrame();