(完整word版)小日历-JAVA课程设计实验报告

(完整word版)小日历-JAVA课程设计实验报告
(完整word版)小日历-JAVA课程设计实验报告

软件学院

课程设计报告书

课程名称

设计题目

专业班级

学号

姓名

指导教师

年月

目录

JAVA日历设计 (3)

1.设计目标 (3)

2.设计要求 (3)

3.制作要点: (3)

4.设计思想 (3)

5.设计类及对象设计 (4)

6.代码分析 (4)

6.程序源代码 (10)

7.调试记录 (15)

8.总结 (16)

9.参考文献 (17)

JAVA日历设计

1.设计目标

本课程设计实现一个日历的功能,可显示当前的年,月,日和星期.也可以查询,选择年,月后,显示当时的日历.

2.设计要求

(1)界面是日历。该日历可以按年前后翻动,当鼠标单击“上一年”按钮时,当前日历的年份将减一;当鼠标左键单击“下年”按钮,当前日历的年份将加一。

(2)也可以在某年内按月前后翻动。当鼠标左键单击“上月”按钮时,当前日历的月份将减一;当鼠标左键单击“下月” 当前日历表的月份将加一。

(3)使用鼠标左键在要选择的日期上单击,变颜色.

3.制作要点:

(1).AWT与Swing的使用.

(2)应用JApplet生成界面.

4.设计思想

(1)本小日历设计主体结构为:设计一个框架MainFrame,然后在MainFrame里添加一个MainPanel面板。定义一个MainPanel面板类,该面板以边布局格式,所有其他面板、标签等均添加到该面板中。

(2)MainPanel面板北部(上方),添加一个年月面板YearMonthPanel。该年月面板主要放年份显示、月份显示、标题显示。YearMonthPanel面板也使用边布局格式,西部添加一个年份面板,放年份信息;中部添加一个TextPanel面板,放标题文本显示信息;东部添加一个月份面板MonthPanel,放月份下拉框信息。

(3)MainPanel主面板的中部,添加一个DaysPanel面板用于放置月份的天数表格信息。

(4)MainPanel主面板的南部(下方),添加一个InfoPanel面板,主要用于放置显示个人信息。

(5)InfoPanel面板上设计添加一个超级链接标签,链接到个人博客。

5.设计类及对象设计

在本程序中:定义了一个Frame类,主要定义一个窗体框架,用于显示日历信息,并在主函数中只创建一个该窗体对象实现程序功能。

定义了一个主日历面板类MyCalendar,其中包含了日历设计所用到的全局变量、功能函数等,在Frame类里定义了其对象。在该日历面板类里又设计了一个内部类CalendarTable表格类,用于布局日历天的显示格式。

为了设计一个超级链接,定义了一个LinkLable类,单独保存在一个文件LinkTbale.java中,在日历面板类MyCalendar里定义了其对象。

6.代码分析

定义星期天到星期六全局变量

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.white; //设置背景颜色

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.green; //设置被选中的日期的

背景颜色

public static final Color selectedForeground = Color.white; //设置被选中的日期的前景颜色

private JPanel cPane; //日历面板

private JLabel yearsLabel; //"年份"标签

private JSpinner yearsSpinner; //年调控,年份组合框

private JLabel monthsLabel; //"月份"标签

private JComboBox monthsComboBox;//12月下拉框

private JTable daysTable; //用来显示日期的table,日表格

private AbstractTableModel daysModel;//天单元表格

private Calendar calendar; //日历对象

函数定义

public MyCalendar() { //构造函数

cPane = (JPanel) getContentPane();

}

public void init() { //初始化,对所有的空间进行布局,面板界面函数

cPane.setLayout(new BorderLayout());

//使用border布局管理器

calendar = Calendar.getInstance();//默认方式,以本地的时区和地区来构造Calendar

yearsLabel = new JLabel("年份: ");//设置年份标签显示

yearsSpinner = new JSpinner();//构造年份spinner组合框

yearsSpinner.setEditor(new JSpinner.NumberEditor(yearsSpinner, "0000"));

yearsSpinner.setValue(new Integer(calendar.get(Calendar.YEAR)));

//增加监听监听年份的改变

yearsSpinner.addChangeListener(new ChangeListener() {//注册该组合框的事件监听器

public void stateChanged(ChangeEvent changeEvent) {

int day = calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, 1);

calendar.set(Calendar.YEAR, ((Integer) yearsSpinner.getValue()).intValue());

int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, day > maxDay ? maxDay : day);

updateView();//更新显示

}

});

JPanel yearMonthPanel = new JPanel();//定义年月面板

cPane.add(yearMonthPanel, BorderLayout.NORTH);//添加年月面板到日历面板的南面(最上方)

yearMonthPanel.setLayout(new BorderLayout());//边布局模式

yearMonthPanel.add(new JPanel(), BorderLayout.CENTER);

JPanel yearPanel = new JPanel();//构建年份面板

yearMonthPanel.add(yearPanel, BorderLayout.WEST);//年份面板添加到年月面板西部(左边)

yearPanel.setLayout(new BorderLayout());//设置年份面板为边布局并添加年份标签和组合框

yearPanel.add(yearsLabel, BorderLayout.WEST);

yearPanel.add(yearsSpinner, BorderLayout.CENTER);

monthsLabel = new JLabel("月份: "); //设置月份标签显示

monthsComboBox = new JComboBox(); //向月份下拉框中增加内容

for (int i = 1; i <= 12; i++) { //构造下拉框的12个月份

monthsComboBox.addItem(new Integer(i));

}

monthsComboBox.setSelectedIndex(calendar.get(Calendar.MONTH));//下拉框当前月份为选中状态

monthsComboBox.addActionListener(new ActionListener() { //注册月份下拉框的事件监听器

public void actionPerformed(ActionEvent actionEvent) {

int day = calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, 1);

calendar.set(Calendar.MONTH,

monthsComboBox.getSelectedIndex());

int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, day > maxDay ? maxDay : day);

updateView();//更新面板显示

}

});

JPanel monthPanel = new JPanel();//定义月份面板

yearMonthPanel.add(monthPanel, BorderLayout.EAST);//添加月份面板到年月面板的东面(右面)

monthPanel.setLayout(new BorderLayout());//月份面板设为边布局方式

monthPanel.add(monthsLabel, BorderLayout.WEST);//添加月份名称标签到月份面板西面(左面)

monthPanel.add(monthsComboBox, BorderLayout.CENTER);//添加月份下拉框到月份面板中间

daysModel = new AbstractTableModel() { //设置7行7列

public int getRowCount() { //设置7行

return 7;

}

public int getColumnCount() { //设置列7

return 7;

}

public Object getValueAt(int row, int column) {

if (row == 0) { //第一行显示星期

return getHeader(column);

}

row--;

Calendar calendar = (Calendar) MyCalendar.this.calendar.clone();

calendar.set(Calendar.DAY_OF_MONTH, 1);

int dayCount = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

int moreDayCount = calendar.get(Calendar.DAY_OF_WEEK) - 1;

int index = row * 7 + column;

int dayIndex = index - moreDayCount + 1;

if (index < moreDayCount || dayIndex > dayCount) {

return null;

} else {

return new Integer(dayIndex);

}

}

};

daysTable = new CalendarTable(daysModel, calendar);//构造日表格

//设置每个call可以被选中

daysTable.setCellSelectionEnabled(true);//设置表格单元格可选择

daysTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

daysTable.setDefaultRenderer(daysTable.getColumnClass(0), new TableCellRenderer() {

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,

boolean hasFocus, int row, int column) {

String text = (value == null) ? "" : value.toString();

JLabel cell = new JLabel(text);

cell.setOpaque(true);//绘制边界内的所有像素

if (row == 0) {//第一行显示星期,设置为星期的前景色和背景

cell.setForeground(headerForeground);

cell.setBackground(headerBackground);

} else {

if (isSelected) {//日期单元格如果选中,则设置为日期选中的前、背景色

cell.setForeground(selectedForeground);

cell.setBackground(selectedBackground);

} else { //设置日期单元格的普通前、背景色

cell.setForeground(foreground);

cell.setBackground(background);

}

}

return cell;

}

});

updateView();

cPane.add(daysTable, BorderLayout.CENTER);//添加日面板到日历面板中间}

public static String getHeader(int index) {//设置第一行星期的显示

switch (index) {

case 0:

return WEEK_SUN;

case 1:

return WEEK_MON;

case 2:

return WEEK_TUE;

case 3:

return WEEK_WED;

case 4:

return WEEK_THU;

case 5:

return WEEK_FRI;

case 6:

return WEEK_SAT;

default:

return null;

}

}

public void updateView() {//更新面板显示方法

daysModel.fireTableDataChanged();

daysTable.setRowSelectionInterval(calendar.get(Calendar.WEEK_OF_MONTH), calendar.get(Calendar.WEEK_OF_MONTH));

daysTable.setColumnSelectionInterval(calendar.get(Calendar.DAY_OF_WEEK) - 1,

calendar.get(Calendar.DAY_OF_WEEK) - 1);

}

设置日历的table

public static class CalendarTable extends JTable {//表格类

private Calendar calendar;

public CalendarTable(TableModel model, Calendar calendar) {//构造方法

super(model);

this.calendar = calendar;

}

public void changeSelection(int row, int column, boolean toggle, boolean extend) {//选择表格单元格时

super.changeSelection(row, column, toggle, extend);

if (row == 0) {//选择为第一行(星期)时不改变单元格

return;

}

Object obj = getValueAt(row, column);

if (obj != null) {

calendar.set(Calendar.DAY_OF_MONTH, ((Integer)obj).intValue());

}

}

}

让applet作为一个可执行的程序来运行

public static void main(String[] args) {

JFrame frame = new JFrame("日历");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

MyCalendar myCalendar = new MyCalendar();

myCalendar.init();

frame.getContentPane().add(myCalendar);

frame.setSize(400, 250);

frame.show();

}

}

6.程序源代码

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.table.*;

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.white; //设置背景颜色

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.green; //设置被选中的日期的背景颜色

public static final Color selectedForeground = Color.white; //设置被选中的日期的前景颜色

private JPanel cPane; //日历面板

private JLabel yearsLabel; //"年份"标签

private JSpinner yearsSpinner; //年调控,年份组合框

private JLabel monthsLabel; //"月份"标签

private JComboBox monthsComboBox;//12月下拉框

private JTable daysTable; //用来显示日期的table,日表格

private AbstractTableModel daysModel;//天单元表格

private Calendar calendar; //日历对象

//函数定义

public MyCalendar() { //构造函数

cPane = (JPanel) getContentPane();

}

public void init() { //初始化,对所有的空间进行布局,面板界面函数

cPane.setLayout(new BorderLayout());

//使用border布局管理器

calendar = Calendar.getInstance();//默认方式,以本地的时区和地区来构造Calendar

yearsLabel = new JLabel("年份: ");//设置年份标签显示

yearsSpinner = new JSpinner();//构造年份spinner组合框

yearsSpinner.setEditor(new JSpinner.NumberEditor(yearsSpinner, "0000"));

yearsSpinner.setValue(new Integer(calendar.get(Calendar.YEAR)));

//增加监听监听年份的改变

yearsSpinner.addChangeListener(new ChangeListener() {//注册该组合框的事件监听器

public void stateChanged(ChangeEvent changeEvent) {

int day = calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, 1);

calendar.set(Calendar.YEAR, ((Integer) yearsSpinner.getValue()).intValue());

int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, day > maxDay ? maxDay : day);

updateView();//更新显示

}

});

JPanel yearMonthPanel = new JPanel();//定义年月面板

cPane.add(yearMonthPanel, BorderLayout.NORTH);//添加年月面板到日历面板的南面(最上方)

yearMonthPanel.setLayout(new BorderLayout());//边布局模式

yearMonthPanel.add(new JPanel(), BorderLayout.CENTER);

JPanel yearPanel = new JPanel();//构建年份面板

yearMonthPanel.add(yearPanel, BorderLayout.WEST);//年份面板添加到年月面板西部(左边)

yearPanel.setLayout(new BorderLayout());//设置年份面板为边布局并添加年份标签和组合框

yearPanel.add(yearsLabel, BorderLayout.WEST);

yearPanel.add(yearsSpinner, BorderLayout.CENTER);

monthsLabel = new JLabel("月份: "); //设置月份标签显示

monthsComboBox = new JComboBox(); //向月份下拉框中增加内容

for (int i = 1; i <= 12; i++) { //构造下拉框的12个月份

monthsComboBox.addItem(new Integer(i));

}

monthsComboBox.setSelectedIndex(calendar.get(Calendar.MONTH));//下拉框当前月份为选中状态

monthsComboBox.addActionListener(new ActionListener() { //注册月份下拉框的事件监听器

public void actionPerformed(ActionEvent actionEvent) {

int day = calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, 1);

calendar.set(Calendar.MONTH,

monthsComboBox.getSelectedIndex());

int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, day > maxDay ? maxDay : day);

updateView();//更新面板显示

}

});

JPanel monthPanel = new JPanel();//定义月份面板

yearMonthPanel.add(monthPanel, BorderLayout.EAST);//添加月份面板到年月面板的东面(右面)

monthPanel.setLayout(new BorderLayout());//月份面板设为边布局方式

monthPanel.add(monthsLabel, BorderLayout.WEST);//添加月份名称标签到月份面板西面(左面)

monthPanel.add(monthsComboBox, BorderLayout.CENTER);//添加月份下拉框到月份面板中间

daysModel = new AbstractTableModel() { //设置7行7列

public int getRowCount() { //设置7行

return 7;

}

public int getColumnCount() { //设置列7

return 7;

}

public Object getValueAt(int row, int column) {

if (row == 0) { //第一行显示星期

return getHeader(column);

}

row--;

Calendar calendar = (Calendar) MyCalendar.this.calendar.clone();

calendar.set(Calendar.DAY_OF_MONTH, 1);

int dayCount = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

int moreDayCount = calendar.get(Calendar.DAY_OF_WEEK) - 1;

int index = row * 7 + column;

int dayIndex = index - moreDayCount + 1;

if (index < moreDayCount || dayIndex > dayCount) {

return null;

} else {

return new Integer(dayIndex);

}

}

};

daysTable = new CalendarTable(daysModel, calendar);//构造日表格

//设置每个call可以被选中

daysTable.setCellSelectionEnabled(true);//设置表格单元格可选择

daysTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

daysTable.setDefaultRenderer(daysTable.getColumnClass(0), new TableCellRenderer() {

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,

boolean hasFocus, int row, int column) {

String text = (value == null) ? "" : value.toString();

JLabel cell = new JLabel(text);

cell.setOpaque(true);//绘制边界内的所有像素

if (row == 0) {//第一行显示星期,设置为星期的前景色和背景色

cell.setForeground(headerForeground);

cell.setBackground(headerBackground);

} else {

if (isSelected) {//日期单元格如果选中,则设置为日期选中的前、背景色

cell.setForeground(selectedForeground);

cell.setBackground(selectedBackground);

} else { //设置日期单元格的普通前、背景色

cell.setForeground(foreground);

cell.setBackground(background);

}

}

return cell;

}

});

updateView();

cPane.add(daysTable, BorderLayout.CENTER);//添加日面板到日历面板中间}

public static String getHeader(int index) {//设置第一行星期的显示

switch (index) {

case 0:

return WEEK_SUN;

case 1:

return WEEK_MON;

case 2:

return WEEK_TUE;

case 3:

return WEEK_WED;

case 4:

return WEEK_THU;

case 5:

return WEEK_FRI;

case 6:

return WEEK_SAT;

default:

return null;

}

}

public void updateView() {//更新面板显示方法

daysModel.fireTableDataChanged();

daysTable.setRowSelectionInterval(calendar.get(Calendar.WEEK_OF_MONTH), calendar.get(Calendar.WEEK_OF_MONTH));

daysTable.setColumnSelectionInterval(calendar.get(Calendar.DAY_OF_WEEK) - 1,

calendar.get(Calendar.DAY_OF_WEEK) - 1);

}

//设置日历的table

public static class CalendarTable extends JTable {//表格类

private Calendar calendar;

public CalendarTable(TableModel model, Calendar calendar) {//构造方法

super(model);

this.calendar = calendar;

}

public void changeSelection(int row, int column, boolean toggle, boolean extend) {//选择表格单元格时

super.changeSelection(row, column, toggle, extend);

if (row == 0) {//选择为第一行(星期)时不改变单元格

return;

}

Object obj = getValueAt(row, column);

if (obj != null) {

calendar.set(Calendar.DAY_OF_MONTH, ((Integer)obj).intValue());

}

}

}

//让applet作为一个可执行的程序来运行

public static void main(String[] args) {

JFrame frame = new JFrame("Calendar Application");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

MyCalendar myCalendar = new MyCalendar();

myCalendar.init();

frame.getContentPane().add(myCalendar);

frame.setSize(400, 250);

frame.show();

}

}

7.调试记录

程序功能调试如下:

运行程序,出现日历界面:

8.总结

(1)选题目的:本次课程设计为课本后设计题目任选一题进行设计。思考一段时间后,我决定做一个小日历组件的设计。主要考虑到本学期时间少课程内容多,JA V A 课程基础内容掌握并不是很抓实,而对于设计一个小日历组件,由于其功能简单设计也相对较易,对于我个人的学习情况比较合适,并且通过设计这样的一个日历小组件,也能使自己对JA V A的一些基础知识掌握的更加牢固。

(2)对于本小日历的设计,首先考虑其功能有哪些,需要显示什么,如何进行窗体构建布局,需要用哪些知识点,如相关的类和对象等。最后,就是根据初步设计的功能和布局构架,考虑用源代码进行实现了。

(3)本小日历组件在设计过程中参考了一些网络上的日历组件设计程序,只是那些程序大都使用功能相对较丰富,涉及到的知识也比较多,对于自己目前所掌握的内容来说有点广博。不过那些程序对日历实现的一些思想对我确实有很多启发。本小日历组件设计过程中也参考了一些他人设计的代码。在设计本小日历组件过程中遇到过许多问题,最后都是在网络搜集询问的帮助下一一得以解决。

经过了长时间的反复编写调试,课本和网上查阅相关资料相关文章,终于完成了整个课程设计。在这个过程中,在把书本上的知识给系统的复习了一下的同时,同时也发现了自己的太多不足,对JA V A2语言整体知识构架不够熟悉,不能灵活地运用所学的知识点。自己的编程方式也不是太标准,经常出现代码写错而调试很久的低级错误情况出现。

通过这次课程设计,我明白了编写程序,不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。还要熟悉常用的编程技巧和编程思想,不能只关心程序的运行结果,更要注重程序代码的结构,编程者更要有严谨地态度。还有通过设计过程中大量地查阅网络文章,对一些关键知识点逐个地了解并解决相关问题。所以网络这个强大的工具,确实是我们学习之中可以借助的一个很好的帮手。网络是我们学习的最好的老师之一。有问题,问网络,是一个很好的习惯。

9.参考文献

1.JA V A语言导学(第4版)(英文版) 人民邮电出版社

Sharon Zakhour Scott Hommel Jacob Royal

Isaac Rabinovitch Tom Risser Mark Hoeber 著2.JA V A 案例开发集锦电子工业出版社

袁然郑自国邹丰义编著

3.JA V A语言程序设计基础篇机械工业出版社

(美) Y.Daniel Liang 著

王镁新夫李娜等译

日历word打印版

1元旦节2 初二 3 初三 4 初四 5小寒6 初六 7 初七 8 腊八节 9 初九 10 初十 11 十一 12十二13 十三 14 十四 15 十五 16 十六 17 十七 18 十八 19十九20 大寒 21 廿一 22 廿二 23 小年 24 廿四 25 廿五 26世界麻风日27 廿七 28 廿八 29 廿九 30 除夕 31 春节 1春节 2春节3 初四 4 立春 5 初六 6 初七 7 初八 8 初九 9初十 10 国际气象节 11 十二 12 十三 13 十四 14 元宵节 15 十六 16十七17 十八 18 十九 19 雨水 20 廿一 21 廿二 22 廿三 23廿四24 廿五 25 廿六 26 廿七 27 廿八 28 廿九 1

1国际海豹日 2初二 3 全国爱耳日 4 初四 5 学雷锋纪... 6 初六 7 初七 8 妇女节 9初九10 初十 11 十一 12 植树节 13 十三 14 国际警察日 15 消费者权... 16十六 17 中国国医... 18 十八 19 十九 20 二十 21 世界森林... 22 世界水日 23世界气象日 24 世界防治... 25 全国中小... 26 廿六 27 廿七 28 廿八 29 1愚人节2 初三 3 初四 4 初五 5 清明节 6初七 7 世界卫生日 8 初九 9 初十 10 十一 11 十二 12 十三 13十四14 十五 15 十六 16 十七 17 十八 18 十九 19 二十 20复活节21 廿二 22 世界地球日 23 世界图书... 24 亚非新闻... 25 廿六 26 廿七 27廿八28 廿九 29 4月大 30 初二 2

中南大学JAVA实验报告

中南大学 《JAVA语言与系统设计》 实验报告 题目运用运用JavaFx画时钟运用JavaFx实现时钟动画学生姓名 指导教师 学院信息科学与工程学院 专业班级 完成时间

目录 第一章绪论............................................................................................... 1.1实验背景............................................................................................... 1.2实验意义.............................................................................................. 1.3JavaFX介绍......................................................................................... 第二章需求分析..................................................................................... 2.1题目描述............................................................................................. 2.1.1 实验一.................................................................................... 2.1.2 实验二.................................................................................... 2.2 概要设计........................................................................................... 2.2.1 实验一.................................................................................... 2.2.2 实验二.................................................................................... 2.3 程序清单........................................................................................... 2.3.1 实验一代码............................................................................ 2.3.2 实验二代码............................................................................ 第三章调试分析.................................................................................... 3.1 结果分析......................................................................................... 3.1.1 实验一结果............................................................................ 3.1.2 实验二结果............................................................................ 3.2 调试报告........................................................................................ 心得体会.................................................................................................

Java课程设计实验报告

Java课程设计实验报告 导语:日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。以下是小编为大家整理分享的Java课程设计实验报告,欢迎阅读参考。 1、加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2、使用本学期学习的Java SE技术完成多功能日历GUI 程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3、在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 1、问题描述准确、规范。 2、程序结构合理,调试数据准确、有代表性、。 3、界面布局整齐,人机交互方便。 4、输出结果正确。 5、正确撰写实验报告。 编写一个GUI程序实现日历的功能。一年日历用12页

显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农 历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报 时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 1、在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2、在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3、各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4、根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5、详细的上机实验步骤见任务分工及程序设计进度表。 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

2020记事日历 (可直接打印word版)

星期一星期二星期三星期四星期五星期六星期日 30 初五31 初六 1 元旦 2 腊八月 3 初九 4 初十 5 十一 6 小寒7 十三 8 十四 9 十五 10 十六 11 十七 12 十八 13 十九14 二十 15 廿一 16 廿二 17 小年 18 廿四 19 廿五 20 大寒21 廿七 22 廿八 23 廿九 24 除夕 25 春节 26 初二 27 初三28 初四 29 初五 30 初六 31 初七 1 初八 2 湿地日01

星期一星期二星期三星期四星期五星期六星期日 27 初三28 初四 29 初五 30 初六 31 初七 1 初八 2 湿地日 3 初十4 立春 5 十二 6 十三 7 十四 8 元宵节 9 十六 10 十七11 十八 12 十九 13 二十 14 情人节 15 廿二 16 廿三 17 廿四18 廿五 19 雨水 20 廿七 21 廿八 22 廿九 23 二月大 24 龙抬头25 初三 26 初四 27 初五 28 初六 29 初七 1 初八

星期一星期二星期三星期四星期五星期六星期日 24 龙抬头25 初三 26 初四 27 初五 28 初六 29 初七 1 初八 2 初九3 初十 4 十一 5 惊蛰 6 十三 7 十四 8 妇女节 9 十六10 十七 11 十八 12 植树节 13 二十 14 廿一 15 消费者权益日 16 廿三17 廿四 18 廿五 19 廿六 20 春分 21 廿八 22 廿九 23 三十24 三月大 25 初二 26 初三 27 初四 28 初五 29 初六 30 初七31 初八 1 初九 2 初十 3 十一 4 清明 5 十三

JAVA编写日历实训心得

班级:**** 姓名:*** 学号:****10010127 java实验报告 实验7 日历 一、实验目的 1. 掌握swt 的容器概念及使用方法。 2. 掌握swt 中的工具栏与菜单的使用方法。 3. 掌握swt 中的表格组件的使用。 4. 掌握swt 各种对话框的使用方法。 二、实验内容:简单日历系统的设计与实现。 三、实验步骤:1. 简单日历系统的设计与实现 1) 创建java 类。在“包资源管理器”中用鼠标右击项目“practical”,选择快捷菜单中“新建”→“visual class”;在打开的“new java visual class ”窗口中,“源文件夹”的默认值是项目的文件夹,不需要更改,“包”栏中输入程序包的名称“ch7”。“名称”栏中输入类名“su”,在“style ”列表框中选择“swt”→“shell”,选中“public static void main(string[] args) ”复选框,使之自动创建一个main 方法,单击“完成”按钮,一个含有gui 程序界面以及代码的编辑器窗口被打开。2) 添加组件。用鼠标右键单击gui 程序界面的任何位置,在快捷菜单中选择“set layout”→“filllayout”。在“palette”面板中用鼠标单击“swt containers ”中的“viewform”,在程序界面sshell 中添加viewform 容器viewform 。从pallete 工具栏中依次单击组件:toolbar 和table ,在viewform 容器添加一个工具栏toolbar 和一个表格table ,并在工具栏toolbar 中添加4 个工具栏按钮toolitem~toolitem3;在表格中添加7 个表列tablecolumn~tablecolumn6 。更改4 个工具栏按钮的text 属性分别为“上一年”、“上个月”、“下个月”和“下一年”;更改7 个表列的text 属性分别为“日”~“六”,如图下所示。 (3)注意声明类的成员变量:calendar now=calendar.getinstance(); int year; int month; 4) 为类“su”编写自定义的“重置”方法。在编辑器中编写代码如下:public class su { private shell sshell = null; // @jve:decl-index=0:visual-constraint=138,42 private viewform viewform = null; private toolbar toolbar = null; private table table = null; private calendar now=calendar.getinstance(); int year; int month; private void createviewform() {viewform = new viewform(sshell, swt.none); createtoolbar(); viewform.settopleft(toolbar); table = new table(viewform, swt.none); table.setheadervisible(true); table.setfont(new font(display.getdefault(), tahoma, 10, swt.normal)); table.setlinesvisible(true); tablecolumn tablecolumn = new tablecolumn(table, swt.center); tablecolumn.setwidth(60); tablecolumn.settext(日); tablecolumn tablecolumn1 = new tablecolumn(table, swt.center); tablecolumn1.setwidth(60); tablecolumn1.settext(一); tablecolumn tablecolumn2 = new tablecolumn(table, swt.center); tablecolumn2.setwidth(60); tablecolumn2.settext(二); tablecolumn tablecolumn3 = new tablecolumn(table, swt.center); tablecolumn3.setwidth(60); tablecolumn3.settext(三); tablecolumn tablecolumn4 = new tablecolumn(table, swt.center); tablecolumn4.setwidth(60); tablecolumn4.settext(四); tablecolumn tablecolumn5 = new tablecolumn(table, swt.center); tablecolumn5.setwidth(60); tablecolumn5.settext(五); tablecolumn tablecolumn6 = new tablecolumn(table, swt.center); tablecolumn6.setwidth(60); tablecolumn6.settext(六); viewform.setcontent(table);} private void remove(calendar now){ int y; int year = now.get(calendar.year); int month=now.get(calendar.month)+1;case

JAVA线程程序设计(小时钟)实验报告(附完整代码)

线程程序设计 一、课题内容和要求 内容:设计和编写一个编写一个指针式时钟程序,应用线程实现时钟的走动。 要求:本实验旨在通过实验,培养学生将JAVA 线程的相关知识点(包括线程调度,线程同步等)有机结合并加以综合应用,在实验中设计多线程程序的能力。 二、设计思路分析 class Clock:一个指针式时钟的主类 class Layout: 添加窗口和时钟组件 class ClockPaint:定义时钟组件 三、概要设计 public class Clock extends JFrame { public static void main(String[] s) ; } class Layout extends JFrame { public Layout(); } class ClockPaint extends JPanel implements Runnable { int x, y, r; int h, m, s; double rad = Math.PI / 180; public ClockPaint(int x, int y, int r); public void paint(Graphics g); public void run(); } 时钟的绘制:

运行时钟: 四、详细设计 import java.awt.*; import javax.swing.*; import java.util.*; public class Clock extends JFrame { public static void main(String[] s) { new Layout(); } } class Layout extends JFrame {// 添加窗口和时钟组件public Layout() { ClockPaint cp = new ClockPaint(20, 20, 70); add(cp);

2020记事日历(可直接打印word 版)

农历庚子鼠年Happy New Year

星期一星期二星期三星期四星期五星期六星期日 30 初五31 初六 1 元旦 2 腊八月 3 初九 4 初十 5 十一 6 小寒 7 十三 8 十四 9 十五 10 十六 11 十七 12 十八 13 十九14 二十 15 廿一 16 廿二 17 小年 18 廿四 19 廿五 20 大寒21 廿七 22 廿八 23 廿九 24 除夕 25 春节 26 初二 27 初三28 初四 29 初五 30 初六 31 初七 1 初八 2 湿地日 2020农历庚子年 January 备忘录:

星期一星期二星期三星期四星期五星期六星期日 27 初三28 初四 29 初五 30 初六 31 初七 1 初八 2 湿地日 3初十 4 立春 5 十二 6 十三 7 十四 8 元宵节 9 十六 10 十七11 十八 12 十九 13 二十 14 情人节 15 廿二 16 廿三 17 廿四18 廿五 19 雨水 20 廿七 21 廿八 22 廿九 23 二月大 24 龙抬头25 初三 26 初四 27 初五 28 初六 29 初七 1 初八 2020农历庚子年 February 备忘录:

星期一星期二星期三星期四星期五星期六星期日 24 龙抬头25 初三 26 初四 27 初五 28 初六 29 初七 1 初八 2 初九 3 初十 4 十一 5 惊蛰 6 十三 7 十四 8 妇女节 9 十六10 十七 11 十八 12 植树节 13 二十 14 廿一 15 消费者权益日 16 廿三17 廿四 18 廿五 19 廿六 20 春分 21 廿八 22 廿九 23 三十 24 三月大 25 初二 26 初三 27 初四 28 初五 29 初六 30 初七31 初八 1 初九 2 初十 3 十一 4 清明 5 十三 2020农历庚子年 March 备忘录:

(完整word版)2020年可打印日历A4纸word版

2020年1月 星期一星期二星期三星期四星期五星期六星期日 1 元旦 2 腊八节 3 初九 4 初十 5 十一 6 小寒 7 十三 8 十四 9 十五 10 十六 11 十七 12 十八 13 十九 14 二十 15 廿一 16 廿二 17 小年 18 廿四 19 廿五 20 大寒 21 廿七 22 廿八 23 廿九 24 除夕 25 春节 26 初二 27 初三 28 初四 29 初五 30 初六 31 初七 1 初八 2 湿地日

2020年2月 星期一星期二星期三星期四星期五星期六星期日 1 初八 2 湿地日 3 初十 4 立春 5 十二 6 十三 7 十四 8 元宵节 9 十六 10 十七 11 十八 12 十九 13 二十 14 情人节 15 廿二 16 廿三 17 廿四 18 廿五 19 雨水 20 廿七 21 廿八 22 廿九 23 二月 24 龙头节 25 初三 26 初四 27 初五 28 初六 29 初七 1 初八

2020年3月 星期一星期二星期三星期四星期五星期六星期日 1 初八 2 初九 3 初十 4 十一 5 惊蛰 6 十三 7 十四 8 妇女节 9 十六 10 十七 11 十八 12 植树节 13 二十 14 廿一 15 消费者日 16 廿三 17 廿四 18 廿五 19 廿六 20 春分 21 廿八 22 廿九 23 三十 24 三月 25 初二 26 初三 27 初四 28 初五 29 初六 30 初七 31 初八 1 愚人节 2 初十 3 十一 4 清明 5 十三

2020年4月 星期一星期二星期三星期四星期五星期六星期日 1 愚人节 2 初十 3 十一 4 清明 5 十三 6 十四 7 十五 8 十六 9 十七 10 十八 11 十九 12 二十 13 廿一 14 廿二 15 廿三 16 廿四 17 廿五 18 廿六 19 谷雨 20 廿八 21 廿九 22 地球日 23 四月 24 初二 25 初三 26 初四 27 初五 28 初六 29 初七 30 初八 1 劳动节 2 初十 3 十一

Java图形用户界面实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验名称:图形用户界面 专业名称:计算机科学与技术 班级:计科1405班 学生姓名:高宏伟 学号:04141152 指导教师:刘霞林 实验日期:一、实验目的 了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。 二、实验要求 1. 掌握使用布局管理器对组件进行管理的方法。

2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 3. 掌握编写独立运行的窗口界面的方法。 4. 掌握组件的使用方法。 5. 了解对话框的使用方法。 三、实验内容 (一)算术测试。 实验要求: 编写一个算术测试小软件,用来训练小学生的算术能力。程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确; ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过 ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答 案;MainClass是软件的主类。 程序模板: public class Teacher { int numberOne,numberTwo; String operator=""; boolean right; public int giveNumberOne(int n) { numberOne=(int)()*n)+1; return numberOne; } public int giveNumberT wo(int n) { numberTwo=(int)()*n)+1; return numberTwo; } public String giveOperator() { double d=(); if(d>= operator="+"; else operator="-"; return operator; } public boolean getRight(int answer) { if("+")) { if(answer==numberOne+numberTwo) right=true; else right=false; }

完整word版,2020年日历A4打印(每月一张-横版-完美版)

2020年1月January 星期一星期二星期三星期四星期五星期六星期日 1元旦2腊八节3初九4初十5十一 6小寒7十三8十四9十五10十六11十七12十八 13十九14二十15廿一16廿二17小年18廿四19廿五 20大寒21廿七22廿八23廿九24除夕25春节26初二 27初三28初四29初五30初六31初七1初八2湿地日

2020年2月February 星期一星期二星期三星期四星期五星期六星期日 1初八2湿地日 3初十4立春5十二6十三7十四8元宵节9十六 10十七11十八12十九13二十14情人节15廿二16廿三 17廿四18廿五19雨水20廿七21廿八22廿九23二月 24龙头节25初三26初四27初五28初六29初七1初八

2020年3月March 星期一星期二星期三星期四星期五星期六星期日 1初八 2初九3初十4十一5惊蛰6十三7十四8妇女节 9十六10十七11十八12植树节13二十14廿一15消费者日16廿三17廿四18廿五19廿六20春分21廿八22廿九 23三十24三月25初二26初三27初四28初五29初六 30初七31初八1愚人节2初十3十一4清明5十三

2020年4月April 星期一星期二星期三星期四星期五星期六星期日 1愚人节2初十3十一4清明5十三 6十四7十五8十六9十七10十八11十九12二十 13廿一14廿二15廿三16廿四17廿五18廿六19谷雨 20廿八21廿九22地球日23四月24初二25初三26初四 27初五28初六29初七30初八1劳动节2初十3十一

2020年5月May 星期一星期二星期三星期四星期五星期六星期日 1劳动节2初十3十一 4青年节5立夏6十四7十五8十六9十七10母亲节 11十九12护士节13廿一14廿二15廿三16廿四17廿五 18博物馆日19廿七20小满21廿九22三十23闰四月24初二 25初三26初四27初五28初六29初七30初八31初九

日历设计实验报告

佛山科学技术学院 《可视化编程技术》课程设计报告 时钟日历设计 学生姓名: 学号: 年级专业: 指导老师: 学院: 广东★佛山 提交日期:2014年6月 目录 1. 前言 (2) 2.概要设计 (3) 2.1 开发环境 (3) 2.2 时钟日历功能 (3) 2.3 界面设计 (3) 2.4 类的框架结构图 (4) 3. 详细设计 (5) 3.1 使用的java类的说明 (5) 3.2 类的主要方法 (6) 3.2.1 设置3个按钮 (6) 3.2.2 日历、时钟、界面的绘制 (7) 3.2.3 导入素材文件 (10) 3.2.4 设计总体认识 (11) 4. 运行结果 (11) 5. 测试分析 (11) 5.1 程序运行情况 (11) 5.2 程序异常处理 (12) 6. 源程序....................................................................................13 参考文献.......................................................................................23 设计总结 (24) 摘要:该程序是一个图形界面的简单的java时钟日历,具有良好的界面。该程序可以自 动获取系统日期和时间。还可以翻看万年历,在点选日期的时候会有音效。程序中还有个会 移动的图形条,在右侧则有一个时钟图形,会跟着实时时间动。下方三个按钮可以播放一个 声音,play则播放一次,loop则循环播放, stop则停止播放声音。 关键字:java、日历类、时钟类、声音类、方法、事件 1 前言 随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文 本编辑器是个人计算机最司空见惯的应用程序了,在学习了java语言之后,我决定使用java 语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需 要。 java是由sun公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意 种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行” 的目标。正因为如此,java已成为当今internet上最流行、最受欢迎的一种程序开发语言。

java实验报告实验六Java图形用户界面

信息工程学院 Java程序设计实习报告 JAVA图形用户界面 实验六Java图形用户界面 1.实验目的 (1)掌握图形用户界面基本组件。 (2)了解如何使用布局管理器对组件进行管理。 (3)掌握Java事件处理机制。 2.实验内容 实验题1 编写一个模拟计算器的程序,使用面板和网格布局,添加一个文本框,10个数字按钮(0-9),4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式和结果显示在文本框中。 运行结果: 实验报告的内容与格式按任课教师的要求书写。

加法: 主要代码: private void initComponents() { jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); jButton5 = new javax.swing.JButton(); jButton6 = new javax.swing.JButton(); jButton7 = new javax.swing.JButton(); jButton8 = new javax.swing.JButton(); jButton9 = new javax.swing.JButton(); jButton10 = new javax.swing.JButton(); jButton11 = new javax.swing.JButton(); jButton12 = new javax.swing.JButton(); jButton13 = new javax.swing.JButton(); jButton14 = new javax.swing.JButton(); jButton15 = new javax.swing.JButton(); jTextField1 = new javax.swing.JTextField();

java实验报告

信息工程学院Java语言课内实习报告(2013~2014学年第二学期) 实习题目:Swing 姓名: 学号: 专业: 年级班级:

一、实习目的 使用Java做图形界面啦,了解图形用户界面基本组件的使用,布局管理器如何对组件进行管理以及事件处理机制的应用。 二、实习设计过程 任务一:小小界面设计 请设计一个界面,包括:菜单,文本框,按钮,标签,文本区,选择框,单选按钮和下拉列表。 任务二: 计算器 (1)编写一个计算器的程序,主界面由多个按钮组建、文本框组建构成。运行结果如图所示:

任务三:算数测试 编写一个算术测试小软件,用来训练小学生的算术能力。程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确:ComputerFrame类对象提供的GUI界面看到题目并通过该GUI界面给出题目的答案;MailClass是主类。 任务四:日历 该窗口为BorderLayout布局。窗口的中心添加一个Panel容器:pCenter,pCenter的布局是7行7列的GridLayout布局,pCenter 的中放置49个标签,用来显示日历。窗口北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth按钮,单击nextMonth,可以显示当前月的下一个月的日历;单击previousMonth按钮,可以显示当前月的上一个月的日历。窗口的南面添加一个Panel容器pSouth,其布局是FlowLayout布局,pSouth中请完成界面设计和相关功能。

java迷你日历_程序+实验报告

Java 万年历程序实验报告 <实验题目> 实现图形界面的万年历,可以显示不同年月日历。 <实现结果> 截图如下 操作步骤:自己输入年份,自己输入月份,按 ok 按钮后显示。 <程序简述> btn1 labelOO 以下为窗口大致布局,对应代码中各变量。 labelO tO label1 t1 P1 P2

<总结心德> 此次java 编程对第八章的内容有了比较深入的理解,在编程中遇到了各种的问题,但还是在不断的 改错和补充中完成了实验。第一次有这种图形界面的成品感觉很有成就感,而且得来确实不容易。我觉 得实践确实出真知而且实践还能不断发现问题,解决问题,真正提高自己。在这次实验中收获很多。 <源代码> import java.awt.*; import java.awt.eve nt.*; import javax.swi ng.*; P ublic Cale ndar() { super("mini 万年历");//框架命名 this.setDefaultClose Op erati on (JFrame.EXIT_ON_CLOSE);// 窗口关闭函数 this.setBounds(100,100,500,300);// 设置窗口 的位置和大小 Container c=getC ontentPan e(); p1 = new JPan el();// 面板对象 p0 = new JPan el(); p2 = new JPanel(new GridLayout(7,7,10,1));// 网格布局管理器 label0=new JLabel("年份(如:2012) ");//标签组件 程序中主要运用第八章内容,包含窗口的布局设计和各个组件的功能和显示。同时利用网络学习了 类型转换的两个函数和标签的内容改写。程序基本完成了实验要求,同时有处理异常输入的能力。 p ublic class Cale ndar exte nds JFrame impi eme nts Action Liste ner { static int year,mo nth; 〃设置静态变量便于计算方法的实现 private String [] ast = {" 星期日"," " 星期五"," 星期六"}; P rivate JLabel [] ai = new JLabel[49]; private JLabel Iabel0,label1,label2,label00; private JTextField t0,t1; p rivate JButt on btn1; //输入 框 //按钮 星期一"," 星期二"," 星期三"," 星期四", //标签

(完整word版)2020年日历,方便记事备忘,完美打印版,一月一张

January 2020年1月农历己亥年猪年 周一周二周三周四周五周六周日 1元旦2腊八3初九4初十5十一 6十二7十三8十四9三九10十六11十七12十八 13十九14二十15廿一16廿二17廿三北方小年18廿四南方小年19廿五 20廿六大寒21廿七22廿八23廿九24除夕25春节26初二 27五九28初四29初五30初六31初七

February2020年2月农历庚子年鼠年 周一周二周三周四周五周六周日 1初八2初九上班3初十4立春5六九6十三7十四休8元宵9十六 10十七11十八12十九13二十14情人节廿一15廿二16廿三 17廿四18廿五19雨水廿六20廿七21廿八22廿九23八九 24龙抬头初二25初三26初四27初五28初六29初七

March 2020年3月农历庚子年鼠年 周一周二周三周四周五周六周日 1初八 2初九3九九4十一5惊蛰十二6十三7十四8十五妇女节 9十六10十七11十八12十九植树节13二十14廿一15廿二消费者权益日16廿三17廿四18廿五19廿六20廿七春分21廿八22廿九 23三十24三月25初二26初三27初四28初五29初六 30初七31初八

April 2020年4月农历庚子年鼠年 周一周二周三周四周五周六周日 1初九愚人节2初十3十一4十二清明5十三 6十四7十五8十六9十七10十八11十九12二十 13廿一14廿二15廿三16廿四17廿五18廿六19廿七谷雨20廿八21廿九22三十23四月24初二25初三26初四 27初五28初六29初七30初八

周一周二周三周四周五周六周日 1初九劳动节2初十3十一 4十二青年节5十三立夏6十四7十五8十六9十七10十八母亲节11十九12二十13廿一14廿二15廿三16廿四17廿五 18廿六19廿七20廿八小满21廿九22三十23润四月24初二 25初三26初四27初五28初六29初七30初八31初九

北邮日历java实验报告

Java日历实验报告 信息工程27班项明钧 一、实验要求 写一个建议日历图形用户界面 二、设计思路 此次作业主要用到了窗口布局设计及各个组件的功能显示,事件处理机制。首先需要建立一个frame框架,然后进行布局设计。需要用到p0,p1,p2,p3,p4面板,其中p0,p1,p2,p4为正常静态面板,p3位自己定义的JScrollPane滚动面板,内容从p0获取,可以通过滑动滚动条来达到显示超出界面显示范围的内容。接着定义若干button,label,TextField通过add函数添加到对应的面板中。通过将主日历显示界面设置成GridLayout来达到网格式显示,当有文本输入和按钮按下,事件处理机制将会判断输入的年和月份是否符合正确格式。是的话将通过getMonthDay和getStartDay得到的所查询月份的日历一个个插入网格中,完成日历显示。 在p3面板中我还借用了new JLabel(new ImageIcon函数插入本地图片,使界面更加美观。界面最下一栏放入了关于日历由来的简介,由于字数较多在界面范围内不能全部显示,我使用了JScrollPane滚动面板,这样就可以左右移动条来翻阅日历简介了。 三、实验结果

四、心得体会 这次实验我选了java日历软件。在学习了图形界面(GUI)设计后,我知道了窗口里面板,标签,文本框的基本设置和代码应用。但是就单单简单地添加几个组件画面难免显得简单,因此我在网上查询代码分别给面板增添了背景色,给我的信息字体设置了字体,大小,还给最下一栏日理由来增加了滚动条。通过这次学习,我发现书上很多知识只有在实际编写代码运用到时才能有更好的理解,而且我未知的函数好还有很多,需要我去主动探索学习。 五、源代码及注释 import java.awt.*; import java.awt.event.*; import javax.swing.*;

(完整word版)小日历-JAVA课程设计实验报告

软件学院 课程设计报告书 课程名称 设计题目 专业班级 学号 姓名 指导教师 年月

目录 JAVA日历设计 (3) 1.设计目标 (3) 2.设计要求 (3) 3.制作要点: (3) 4.设计思想 (3) 5.设计类及对象设计 (4) 6.代码分析 (4) 6.程序源代码 (10) 7.调试记录 (15) 8.总结 (16) 9.参考文献 (17)

JAVA日历设计 1.设计目标 本课程设计实现一个日历的功能,可显示当前的年,月,日和星期.也可以查询,选择年,月后,显示当时的日历. 2.设计要求 (1)界面是日历。该日历可以按年前后翻动,当鼠标单击“上一年”按钮时,当前日历的年份将减一;当鼠标左键单击“下年”按钮,当前日历的年份将加一。 (2)也可以在某年内按月前后翻动。当鼠标左键单击“上月”按钮时,当前日历的月份将减一;当鼠标左键单击“下月” 当前日历表的月份将加一。 (3)使用鼠标左键在要选择的日期上单击,变颜色. 3.制作要点: (1).AWT与Swing的使用. (2)应用JApplet生成界面. 4.设计思想 (1)本小日历设计主体结构为:设计一个框架MainFrame,然后在MainFrame里添加一个MainPanel面板。定义一个MainPanel面板类,该面板以边布局格式,所有其他面板、标签等均添加到该面板中。 (2)MainPanel面板北部(上方),添加一个年月面板YearMonthPanel。该年月面板主要放年份显示、月份显示、标题显示。YearMonthPanel面板也使用边布局格式,西部添加一个年份面板,放年份信息;中部添加一个TextPanel面板,放标题文本显示信息;东部添加一个月份面板MonthPanel,放月份下拉框信息。

相关文档
最新文档