Java实现的日历功能完整示例_java_脚本之家

Java技术迷

本文实例讲述了Java实现的日历功能。分享给大家供大家参考,具体如下:

应用名称:Java日历

用到的知识:Java GUI编程,日期操作

开发环境:win8+eclipse+jdk1.8

功能说明:一个很简单的万年历,可以选择年份和月份,也可以用按钮翻页,日历会实时更新日期,最下方会显示当前操作系统的时间。

效果图:

源代码:

CalendarFrame.java

?

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

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

import java.awt.BorderLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.border.BevelBorder;

import javax.swing.border.SoftBevelBorder;

public class CalendarFrame extends JFrame implements ActionListener{

/**

* @author Nut

* 2016.01.13

*/

private static final long serialVersionUID = -7260798316896145633L;

JLabel labelDay[] = new JLabel[`42`];

JButton titleName[] = new JButton[`7`];

String name[]={`"日","一","二","三","四","五","六"`};

JButton nextMonth,previousMonth;

JComboBox choiceYear,choiceMonth;

Calendarbean calendar;

JLabel showYear,showMonth;

JLabel showmessage=`new JLabel("",JLabel.CENTER);`

int year = 2011`,month=2;`

//构造方法初始化界面

public CalendarFrame(){

JPanel pCenter = new JPanel();

pCenter.setLayout(`new GridLayout(7,7));`

//星期栏

for`(int` `i=0;i<7`;i++){

titleName[i]=`new JButton(name[i]);`

titleName[i].setBorder(`new SoftBevelBorder(BevelBorder.RAISED));`

pCenter.add(titleName[i]);

}

//日期栏

for`(int` `i=0;i<42`;i++){

labelDay[i]=`new JLabel("",JLabel.CENTER);`

labelDay[i].setBorder(`new SoftBevelBorder(BevelBorder.LOWERED));`

pCenter.add(labelDay[i]);

}

//年月选择栏

choiceYear=`new JComboBox();`

choiceMonth=`new JComboBox();`

showYear=`new JLabel("年");`

showMonth=`new JLabel("月  ");`

for`(int` `i=1990;i<2050`;i++)

choiceYear.addItem(i);

choiceYear.addActionListener(`this`);

for`(int` `i=1;i<=12`;i++)

choiceMonth.addItem(i);

choiceMonth.addActionListener(`this`);

calendar=`new Calendarbean();`

nextMonth=`new JButton("下月");`

previousMonth=`new JButton("上月");`

nextMonth.addActionListener(`this`);

previousMonth.addActionListener(`this`);

JPanel pNorth=`new JPanel(),`

pSouth=`new JPanel();`

pNorth.add(choiceYear);

pNorth.add(showYear);

pNorth.add(choiceMonth);

pNorth.add(showMonth);

pNorth.add(previousMonth);

pNorth.add (nextMonth);

pSouth.add(showmessage);

add(pCenter,BorderLayout.CENTER);

add(pNorth,BorderLayout.NORTH);

add(pSouth,BorderLayout.SOUTH);

setYearAndMonth(year,month);

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

}

public void setYearAndMonth(`int y,`int m){

calendar.setYear(y);

calendar.setMonth(m);

String day[]=calendar.getCalendar();

for`(int` `i=0;i<42`;i++)

labelDay[i].setText(day[i]);

SimpleDateFormat df = new SimpleDateFormat(`"yyyy年MM月dd日 EEEE");//设置日期格式`

showmessage.setText(`"系统时间:"+df.format(new Date()));`

}

//事件动作

public void actionPerformed(ActionEvent e){

if`(e.getSource()==nextMonth){`

month=month +`1`;

if`(month>12)`

month=`1`;

calendar.setMonth(month);

choiceMonth.setSelectedItem(month);

String day[]=calendar.getCalendar();

for`(int` `i=0;i<42`;i++){

labelDay[i].setText(day[i]);

}

}

else if`(e.getSource()==previousMonth){`

month=month-`1`;

if`(month<1)`

month=`12`;

calendar.setMonth(month);

choiceMonth.setSelectedItem(month);

String day[]=calendar.getCalendar();

for`(int` `i=0;i<42`;i++){

labelDay[i].setText(day[i]);

}

}

//选择年份

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

calendar.setYear((Integer) choiceYear.getSelectedItem());

String day[]=calendar.getCalendar();

for`(int` `i=0;i<42`;i++){

labelDay[i].setText(day[i]);

}

}

//选择月份

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

calendar.setMonth((Integer) choiceMonth.getSelectedItem());

String day[]=calendar.getCalendar();

for`(int` `i=0;i<42`;i++){

labelDay[i].setText(day[i]);

}

}

//  showmessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月");

}

}

登录后复制

Calendarbean.java

?

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

32

33

34

35

36

37

38

39

import java.util.Calendar;

public class Calendarbean {

String day[];

int year = 2005`,month=0;`

public void setYear(`int year){`

this`.year=year;`

}

public int getYear(){

return year;

}

public void setMonth(`int month){`

this`.month=month;`

}

public int getMonth(){

return month;

}

public String[] getCalendar(){

String a[]=`new String[42];`

Calendar 日历=Calendar.getInstance();

日历.set(year,month-`1,1`);

int 星期几=日历.get(Calendar.DAY_OF_WEEK)-`1`;

int day=`0`;

if (month==`1||month==3||month==5||month==7||month==8||month==10||month==12`)

day=`31`;

if`(month==4||month==6||month==9||month==11)`

day=`30`;

if`(month==2){`

if`(((year%4==0)&&(year%100!=0))||(year%400==0))`

day=`29`;

else

day=`28`;

}

for`(int` `i=星期几,n=1`;i<星期几+day;i++){

a[i]=String.valueOf(n);

n++;

}

return a;

}

}

登录后复制

CalendarMainClass.java

?

1

2

3

4

5

6

7

8

9

10

public class CalendarMainClass{

public static void main(String args[])

{

CalendarFrame frame = new CalendarFrame();

frame.setBounds(`100,100,360,300`);

frame.setTitle(`"Java日历"`);

frame.setVisible(`true`);

frame.setYearAndMonth(`1990,1);//设置日历初始值为1990年1月`

}

}

登录后复制

PS:这里再为大家推荐几款时间及日期相关工具供大家参考使用:

**Unix时间戳(timestamp)转换工具:
**http://tools.jb51.net/code/unixtime

**在线日期/天数计算器:
**http://tools.jb51.net/jisuanqi/date_jisuanqi

**在线日期计算器/相差天数计算器:
**http://tools.jb51.net/jisuanqi/datecalc

**在线日期天数差计算器:
**http://tools.jb51.net/jisuanqi/onlinedatejsq

更多关于java相关内容感兴趣的读者可查看本站专题:《java日期与时间操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

您可能感兴趣的文章:


原网址: 访问
创建于: 2024-01-03 12:41:54
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论