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

日历: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;} elseday = 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);}}

 运行截图:

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部