布局与日历

public class CalendarMainClass {
	public static void main(String[] args) {
		CalendarFrame frame=new CalendarFrame();
		frame.setBounds(100,100,360,300);
		frame.setVisible(true);
        frame.setYearAndMonth(2015,5);
	}
}

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;
		}
}

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class CalendarFrame extends JFrame implements ActionListener{
	JLabel labelDay[]=new JLabel[42];
	JButton titleName[]=new JButton[7];
	String name[]= {"日","一","二","三","四","五","六"};
	JTextField textOne;
	JButton nextMonth,previousMonth,enter;
	CalendarBean calendar;
	JLabel showMessage=new JLabel("",JLabel.CENTER);
	Label lab1;
	int year=2011,month=2;
	public CalendarFrame() {
		textOne=new JTextField(5);
		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.LOWERED));
			pCenter.add(titleName[i]);
		}
		for(int i=0;i<42;i++) {
			labelDay[i]=new JLabel("",JLabel.CENTER);
			labelDay[i].setBorder(new SoftBevelBorder(BevelBorder.RAISED));	
			pCenter.add(labelDay[i]);
			}
		calendar=new CalendarBean();
		lab1=new Label("年份");
		nextMonth=new JButton("下月");
		previousMonth=new JButton("上月");
		enter=new JButton("确定");
		nextMonth.addActionListener(this);
		previousMonth.addActionListener(this);
		enter.addActionListener(this);
		JPanel pNorth=new JPanel(),pSouth=new JPanel();
		pNorth.add(previousMonth);
		pNorth.add(nextMonth);
		pNorth.add(lab1);
		pNorth.add(textOne);
		pNorth.add(enter);
		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]);
		showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月");
	}
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==nextMonth) {
			month=month+1;
			if(month>12)
				month=1;
			calendar.setMonth(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);
			String day[]=calendar.getCalendar();
			for(int i=0;i<42;i++)
				labelDay[i].setText(day[i]);
		}
		else {
			   String yea = textOne.getText();		
			   try {
			    year = Integer.parseInt(yea); //把string转成int类型	
			     calendar.setYear(year);		     			   				   
			   } catch (NumberFormatException ee) {
				   JOptionPane.showMessageDialog(null, "请输入正确的年份");
			   }
			  }
		showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月");
		
	}
}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值