java 实现日历
Posted 夏芷雨涵梦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 实现日历相关的知识,希望对你有一定的参考价值。
题目:java 日历
时间:2019.3.8
介绍:做一个窗体显示日历,最上边是两个按钮切换上下月,中间是日期展示,最下方显示当前的年月。
注:所有代码在Eclipse下调试运行。
代码:
窗体布局: Frame.java
package calendar;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.*;
import javax.swing.*;
public class Frame extends JFrame
JPanel panel1,panel2,panel3;//三个面板展示不同的内容
JButton button1,button2;//两个按钮分别代表上月和下月
String []str="日","一","二","三","四","五","六";
JButton button[]=new JButton[str.length];
JLabel [] label;
JLabel now=new JLabel();
calendarBean calen=new calendarBean();
String []day;
Frame()
init();
void init()
calen.setYear(2019);
calen.setMonth(3);
button1=new JButton("上月");
button1.setActionCommand("last");
button1.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
calen.actionPerformed(e);
);
button2=new JButton("下月");
button2.setActionCommand("next");
button2.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
calen.actionPerformed(e);
);
panel1=new JPanel();
panel1.add(button1);
panel1.add(button2);
GridLayout grid=new GridLayout(7,7);
add(panel1,BorderLayout.NORTH);
panel2=new JPanel();
for(int i=0;i<str.length;i++)
button[i]=new JButton(str[i]);
panel2.add(button[i]);
day=calen.getCalendar();
label=new JLabel[42];
for(int i=0;i<42;i++)
label[i]=new JLabel();
panel2.add(label[i]);
calen.label=this.label;
for(int i=0;i<day.length;i++)
label[i].setText(" "+day[i]);
add(panel2,BorderLayout.CENTER);
panel2.setLayout(grid);
panel3=new JPanel();
now.setText(calen.year+"年"+calen.month+"月");
calen.now=now;
panel3.add(now);
add(panel3,BorderLayout.SOUTH);
日历:calendarBean.java
package calendar;
import javax.swing.*;
import java.awt.event.*;
import java.util.Calendar;
public class calendarBean implements ActionListener
int year = 0, month = 0;
JLabel now;
JLabel[] label;
String[] day;
public void setYear(int year)
this.year = year;
public void setMonth(int month)
this.month = month;
public String[] getCalendar()
String[] a = new String[42];
Calendar rill = Calendar.getInstance();// 初始化一个日历对象
rill.set(year, month - 1, 1);
int weekday = rill.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 = 0; i < weekday; i++)
a[i] = "";
for (int i = weekday, n = 1; i < weekday + day; i++)
a[i] = String.valueOf(n);
n++;
for (int i = weekday + day; i < a.length; i++)
a[i] = "";
return a;
public void actionPerformed(ActionEvent e)
String str = e.getActionCommand();
if (str.equals("last"))
month--;
if (month == 0)
year--;
month = 12;
else if (str.equals("next"))
month++;
if (month == 13)
year++;
month = 1;
now.setText(year + "年" + month + "月");
day = getCalendar();
for (int i = 0; i < day.length; i++)
label[i].setText(" " + day[i]);
main.java
package calendar;
import javax.swing.JFrame;
public class main
public static void main(String[] args)
// TODO 自动生成的方法存根
Frame f=new Frame();
f.setTitle("日历");
f.setBounds(100, 100, 400, 400);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
运行截图:
以上是关于java 实现日历的主要内容,如果未能解决你的问题,请参考以下文章