java日历

来源:互联网 发布:任城区济宁网络问政 编辑:程序博客网 时间:2024/06/06 02:27
import java.awt.*;import javax.swing.*;import java.util.*;import java.awt.event.*;public class calendar extends JFrame implements ActionListener{JFrame windows=new JFrame();JPanel panel1=new JPanel();JPanel panel2=new JPanel();JPanel panel3=new JPanel();JButton buttonPre=new JButton("上个月");JButton buttonNext=new JButton("下个月");JButton []button =new JButton[7];JLabel []label=new JLabel [42];Calendar calendar=Calendar.getInstance();JLabel labelDate=new JLabel(""+calendar.get(calendar.YEAR)+"年"+(calendar.get(calendar.MONTH)+1)+"月");calendar(){Container contain=windows.getContentPane();windows.setLayout(new BorderLayout());/* *panel1 */contain.add(panel1,"North");panel1.add(buttonPre);panel1.add(buttonNext);/* *panel2 */contain.add(panel2,"Center");panel2.setLayout(new GridLayout(0,7));String str[]={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};for(int i=0;i<7;i++){button[i]=new JButton(str[i]);panel2.add(button[i]);}calendar.set(calendar.DAY_OF_MONTH,1);int startDay,endDay;startDay=calendar.get(calendar.DAY_OF_WEEK);endDay=calendar.getActualMaximum(calendar.DAY_OF_MONTH);for(int i=0;i<startDay-1;i++){label[i]=new JLabel("",SwingConstants.CENTER);panel2.add(label[i]);}for(int i=0;i<endDay;i++){label[i+startDay-1]=new JLabel(""+(i+1),SwingConstants.CENTER);panel2.add(label[i+startDay-1]);}for(int i=startDay-1+endDay;i<42;i++){label[i]=new JLabel("",SwingConstants.CENTER);panel2.add(label[i]);}/* *panel3 */contain.add(panel3,"South");panel3.add(labelDate);/* *buttonNext,buttonPre 监视 */ buttonNext.addActionListener(this); buttonPre.addActionListener(this); /* *事件内容 */windows.setSize(640,360);windows.setVisible(true);} public void actionPerformed(ActionEvent e){ if(e.getSource()==buttonNext) calendar.add(calendar.MONTH,1); else calendar.add(calendar.MONTH,-1);int startDay=calendar.get(calendar.DAY_OF_WEEK);int endDay=calendar.getActualMaximum(calendar.DAY_OF_MONTH); for(int i=0;i<startDay-1;i++)label[i].setText("");for(int i=0;i<endDay;i++)label[i+startDay-1].setText(""+(i+1));for(int i=startDay-1+endDay;i<42;i++)label[i].setText("");labelDate.setText(""+calendar.get(calendar.YEAR)+"年"+(calendar.get(calendar.MONTH)+1)+"月");} public static void main(String args[]){new calendar();}}


效果图:

原创粉丝点击