解决方案 »

  1.   

    import java.util.Calendar;  public class CalendarBean { // 日期类  
          
        int year ,month , nextDay; 
        Calendar calendar = Calendar.getInstance();
          
        public void setYear(int year){  
            this.year = year;  
        }  
          
        public void setMonth(int month){  
            this.month = month;  
        }  
          
        // 根据年月,在二维表格中按真实顺序排位  
        public String[][] getCalendar(){  
            String a[][] = new String[6][7];  
            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;  
                }  
            }  
            
            // 二维数组依次排序  
            nextDay = 1;  
            for(int k=0; k<6; k++){  
                if(k == 0){  
                    for(int j=星期几; j<7; j++){  
                        a[k][j] = "" + nextDay;  
                        nextDay++;  
                    }  
                }else{  
                    for(int j=0; j<7 && nextDay<=day; j++){  
                        a[k][j] = "" + nextDay;  
                        nextDay++;  
                    }  
                }  
            }  
              
            return a; // 返回二维当前年月数组  
        }  
    }  
      

  2.   

    import java.awt.BorderLayout;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Calendar;import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.ListSelectionModel;
    import javax.swing.plaf.basic.BasicButtonListener;public class SelectetimeTest extends JDialog implements ActionListener {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private JPanel p;
    private JScrollPane sp;
    private JTextField tfyear, tfmonth;
    private JLabel lbyear, lbmonth;
    private JTable tbtime;
    private JButton button1, button2, button3;
    private Object cells[][];
    private String[] cocumnNames = {"日", "一", "二", "三", "四", "五", "六"};

    private JRadioButton timequery, linequery;
    private JTextField from, arrivel, leavetime;
    private  int inputMonth = 0, inputYear = 0;  
        private String strmonth;
    private Calendar calendar;
    private ListSelectionModel selectionMode;
    private int counter = 0;

    public SelectetimeTest(JFrame f) {
    //初始化信息
    super( f, "选择日期", true);
    p = new JPanel();
    CalendarBean calendarbean = new CalendarBean();
    calendar = Calendar.getInstance();
    inputYear = calendar.get(Calendar.YEAR);
    inputMonth = calendar.get(Calendar.MONTH) + 1;
    calendarbean.setYear(inputYear);  
    calendarbean.setMonth(inputMonth);  
            cells = calendarbean.getCalendar();  
    button1 = new JButton("<<");
    button2 = new JButton("今天");
    button3 = new JButton(">>");
    tfyear = new JTextField(4); 
    tfyear.setText(inputYear + "");
    tfmonth = new JTextField(2); 
    tfmonth.setText(inputMonth + "");
    lbyear = new JLabel("年");
    lbmonth = new JLabel("月");
    tbtime = new JTable(cells, cocumnNames);
    sp = new JScrollPane(tbtime);
    tbtime.setCellSelectionEnabled(true);
    tbtime.isCellEditable(7, 5);
    //设置组件坐标及大小
    button1.addActionListener(this);

    button2.addActionListener(this);

    button3.addActionListener(this);

    //添加信息到面板
    p.add(button1);
    p.add(button2);
    p.add(button3);
    p.add(tfyear);
    p.add(lbyear);
    p.add(tfmonth);
    p.add(lbmonth);
    //设置窗体
    this.add(p, BorderLayout.NORTH);
    this.add(sp);
    this.setSize(300, 200);
    this.setLocation(800, 350);
    this.setResizable(false);
    }

    public void actionPerformed(ActionEvent e) {
    Object source =  e.getSource();
    //如果信号源在第一个选择键上
    if (source == button3) {
    counter++;
    inputMonth = (calendar.get(Calendar.MONTH) + 1) + counter;
    if (inputMonth > 12) {
    if (inputMonth % 12 == 0) {
    inputYear = calendar.get(Calendar.YEAR) + ((inputMonth / 12) - 1);
    inputMonth = 12;
    } else {
    inputYear = calendar.get(Calendar.YEAR) + (inputMonth / 12);
    inputMonth = inputMonth % 12;
    }
    }
    CalendarBean calendarbean = new CalendarBean();
    calendarbean.setYear(inputYear);  
    calendarbean.setMonth(inputMonth);  
    cells = calendarbean.getCalendar();  
    tfyear.setText(inputYear + "");
    tfmonth.setText(inputMonth + "");
    tbtime.revalidate();

    }
    //如果信号源在第二个选择键上
    /*if (source == selecte2) {
    AddLine add = new AddLine();
    add.setVisible(true);
    this.setVisible(false);
    }*/
    //如果信号源在第三个选择键上
    if (source == button2) {
    inputYear = calendar.get(Calendar.YEAR);
    inputMonth = calendar.get(Calendar.MONTH) + 1;
    CalendarBean calendarbean = new CalendarBean();
    calendarbean.setYear(inputYear);  
    calendarbean.setMonth(inputMonth);  
    cells = calendarbean.getCalendar();  
    tfyear.setText(inputYear + "");
    tfmonth.setText(inputMonth + "");
    tbtime = new JTable(cells, cocumnNames);
    }
    //如果信号源在更改信息上
    if (source == button1) {
    counter--;
    inputMonth = (calendar.get(Calendar.MONTH) + 1) + counter;
    if (0 < inputMonth && inputMonth < 12) {
    inputYear = calendar.get(Calendar.YEAR);
    inputMonth = inputMonth % 12;

    } else if (inputMonth == 0){
    inputYear = calendar.get(Calendar.YEAR) - 1;
    inputMonth = 12;
    } else {
    if (inputMonth % 12 == 0) {
    inputYear = calendar.get(Calendar.YEAR) - (-(inputMonth / 12) + 1);
    inputMonth = 12;
    } else {
    inputYear = calendar.get(Calendar.YEAR) - (-(inputMonth / 12) + 1);
    inputMonth =12 - (-(inputMonth % 12));
    }

    }
    CalendarBean calendarbean = new CalendarBean();
    calendarbean.setYear(inputYear);  
    calendarbean.setMonth(inputMonth);  
    cells = calendarbean.getCalendar();  
    tfyear.setText(inputYear + "");
    tfmonth.setText(inputMonth + "");
    tbtime = new JTable(cells, cocumnNames);
    }

    //如果信号源在退出登录上
    }
    public static void main(String [] args) {
    JFrame f1 = null;
    SelectetimeTest selectetime = new SelectetimeTest(f1);
    selectetime.setVisible(true);



    }上面是我的代码,麻烦各位给看下老师要让交作业了