没有类似vc的那种很好的控件
只有一个可以得到日期属性的Calendar class
我曾经参考一位网友给的信息,自己写了个难看的日期控件,你可以看看
返回时间参数形式可按自个需求改改package alpha;
import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.lang.*;
/**
 * 作者:alphazhao
 * 日期:2002-6-5
 * 描述:设定日期调用,进入参数为存放时间的文本框
 *       此界面无快捷键
 * */public class DatePopup extends JDialog implements ActionListener {
  //private Color color = SystemColor.text;
  private Font font14 = new Font("Dialog", 0, 14);//统一字体
  private Font font12 = new Font("Dialog", 0, 12);
  private JPanel mPanel1 = new JPanel();
  private JPanel mPanel2 = new JPanel();
  private JPanel mPanel3 = new JPanel();
  private JPanel mPanel4 = new JPanel();
  private JButton mNewButton;
  private JTextField mText;
  private int mDay;
  private int mMonth;
  private int mYear;
  private int mTheDate;
  private int i = 0;
  private int j = 0;
  private JLabel JLabel1 = new JLabel("一",SwingConstants.CENTER);//星期
  private JLabel JLabel2 = new JLabel("二",SwingConstants.CENTER);
  private JLabel JLabel3 = new JLabel("三",SwingConstants.CENTER);
  private JLabel JLabel4 = new JLabel("四",SwingConstants.CENTER);
  private JLabel JLabel5 = new JLabel("五",SwingConstants.CENTER);
  private JLabel JLabel6 = new JLabel("六",SwingConstants.CENTER);
  private JLabel JLabel7 = new JLabel("日",SwingConstants.CENTER);  public DatePopup(Dialog owner, boolean modal, JTextField pText) {
    super(owner, modal);
    this.mText = pText;
    try {
      JLabel1.setFont(font14);
      JLabel2.setFont(font14);
      JLabel3.setFont(font14);
      JLabel4.setFont(font14);
      JLabel5.setFont(font14);
      JLabel6.setFont(font14);
      JLabel7.setFont(font14);
      this.setTitle("选定待查日期");
      this.setResizable(false);
      DatePopupInit();
      pack();
      CenterShowDialog cs = new CenterShowDialog(this);
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }  /**
   * 控件的初始化方法。
   */
  private void DatePopupInit() {
    //设置主窗口布局
    Container contentPane = getContentPane();
    contentPane.setLayout(new BorderLayout());
    mPanel1.setLayout(new BorderLayout());
    mPanel1.setBorder(new TitledBorder(BorderFactory.createLineBorder(Color.white,1),"DATE"));
    //mPanel1.setBackground(color);
    Calendar nowCalendar = Calendar.getInstance();
    this.mTheDate = nowCalendar.get(Calendar.DAY_OF_WEEK);
    this.mDay = nowCalendar.get(Calendar.DAY_OF_MONTH);
    this.mMonth = nowCalendar.get(Calendar.MONTH);
    this.mYear = nowCalendar.get(Calendar.YEAR);    //设置mPanel2
    JComboBox comboMonth = new JComboBox();
    comboMonth.setActionCommand("MonthSelect");
    //comboMonth.setBackground(color);
    comboMonth.setFont(font12);
    for(i=1;i<=12;i++) {
      comboMonth.addItem(i+"月");
      if(i==(this.mMonth+1)) {
        comboMonth.setSelectedItem(i+"月");
      }
    }
    comboMonth.addActionListener(this);
    JComboBox comboYear = new JComboBox();    comboYear.setActionCommand("YearSelect");
    //comboYear.setBackground(color);
    comboYear.setFont(font12);
    //设定年份
    for(i=1950;i<=2050;i++) {
      comboYear.addItem(i+"年");
      if(i==this.mYear) {
        comboYear.setSelectedItem(i+"年");
      }
    }
    comboYear.addActionListener(this);
    mPanel2.setLayout(new FlowLayout());
    //mPanel2.setBackground(color);
    mPanel2.add(comboMonth);
    mPanel2.add(comboYear);
    mPanel1.add(mPanel2,BorderLayout.NORTH);    //设置mPanel3
    mPanel3.setLayout(new GridLayout(7,7));
    //mPanel3.setBackground(color);
    mPanel3.add(JLabel7);
    mPanel3.add(JLabel1);
    mPanel3.add(JLabel2);
    mPanel3.add(JLabel3);
    mPanel3.add(JLabel4);
    mPanel3.add(JLabel5);
    mPanel3.add(JLabel6);
    //日历制作
    Calendar calendar1 = Calendar.getInstance();
    calendar1.set(this.mYear,this.mMonth+1,1);
    Calendar calendar2 = Calendar.getInstance();
    calendar2.set(this.mYear,this.mMonth,1);
    int daysOfMonth;
    if(this.mMonth==11) {
      daysOfMonth = 31;
    }
    else {
      daysOfMonth = calendar1.get(Calendar.DAY_OF_YEAR) - calendar2.get(Calendar.DAY_OF_YEAR);
    }
    int firstDay = calendar2.get(Calendar.DAY_OF_WEEK);
    for(i=1;i<43;i++) {
      if(((i==firstDay)||(j!=0))&&(j<daysOfMonth)) {
        j++;
        mNewButton = new JButton((new String()).valueOf(j));
        if(j==this.mDay) {
          mNewButton.setSelected(true);
          mNewButton.setEnabled(false);
          mNewButton.setBackground(new Color(84,215,4));
        }
        mNewButton.addActionListener(this);
        mPanel3.add(mNewButton);
      }
      else {
        mPanel3.add(new JLabel());
      }
    }
    mPanel1.add(mPanel3,BorderLayout.CENTER);

解决方案 »

  1.   

    //接上    //设置mPanel4
        JButton confirmButton = new JButton("确定");
        //confirmButton.setBorder(BorderFactory.createRaisedBevelBorder());
        confirmButton.setFont(font14);
        //confirmButton.setBackground(color);
        confirmButton.setActionCommand("confirm");
        confirmButton.addActionListener(this);
        JButton cancelButton = new JButton("取消");
        cancelButton.setFont(font14);
        //cancelButton.setBackground(color);
        cancelButton.setActionCommand("cancel");
        cancelButton.addActionListener(this);
        mPanel4.setLayout(new FlowLayout());
        mPanel4.add(confirmButton);
        mPanel4.add(cancelButton);
        //mPanel4.setBackground(color);    //设置contentpane
        contentPane.add(mPanel1,BorderLayout.CENTER);
        contentPane.add(mPanel4,BorderLayout.SOUTH);
        //contentPane.setBackground(color);
      }  //监听事件响应。
      public void actionPerformed(ActionEvent e) {
        String cmd = e.getActionCommand();
        Object obj = e.getSource();
        String temp = "";
        if(cmd.equals("MonthSelect")) {
          JComboBox comMonth = (JComboBox)obj;
          temp = comMonth.getSelectedItem().toString();
          temp = temp.substring(0,temp.length()-1);
          int tempMonth = Integer.parseInt(temp);
          this.mMonth = tempMonth-1;
          mypaint();
        }
        else if(cmd.equals("YearSelect")) {
          JComboBox comYear = (JComboBox)obj;
          temp = comYear.getSelectedItem().toString();
          temp = temp.substring(0,4);
          int tempYear = Integer.parseInt(temp);
          this.mYear = tempYear;
          mypaint();
        }
        else if(cmd.equals("confirm")) {//计算返回年月日
          String pFinalDate = "";
          if(this.mMonth<9) {
            pFinalDate = this.mYear + "年0" +(this.mMonth+1);
          }
          else {
            pFinalDate = this.mYear + "年" + (this.mMonth+1);
          }
          if(this.mDay<10) {
            pFinalDate =  pFinalDate + "月0"+ this.mDay + "日";
          }
          else {
            pFinalDate =  pFinalDate + "月"+ this.mDay + "日";
          }
          this.mText.setText(pFinalDate);//返回结果日期
          this.dispose();
        }
        else if(cmd.equals("cancel")) {
          this.dispose();
        }
        else {
          int tempDay = Integer.parseInt(cmd);
          this.mDay = tempDay;
          mypaint();
          //System.out.println(cmd);
        }
      }  /**
       * 控件重新布局方法。
       */
      private void mypaint() {
        this.invalidate();
        mPanel3.removeAll();
        mPanel3.setLayout(new GridLayout(7,7));
        //mPanel3.setBackground(color);
        mPanel3.add(JLabel7);
        mPanel3.add(JLabel1);
        mPanel3.add(JLabel2);
        mPanel3.add(JLabel3);
        mPanel3.add(JLabel4);
        mPanel3.add(JLabel5);
        mPanel3.add(JLabel6);
        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(this.mYear,this.mMonth+1,1);
        Calendar calendar2 = Calendar.getInstance();
        calendar2.set(this.mYear,this.mMonth,1);
        int daysOfMonth;
        if(this.mMonth==11) {
          daysOfMonth = 31;
        }
        else {
          daysOfMonth = calendar1.get(Calendar.DAY_OF_YEAR) - calendar2.get(Calendar.DAY_OF_YEAR);
        }
        int firstDay = calendar2.get(Calendar.DAY_OF_WEEK);
        j = 0;
        for(i=1;i<43;i++) {
          if(((i==firstDay)||(j!=0))&&(j<daysOfMonth)) {
            j++;
            mNewButton = new JButton((new String()).valueOf(j));
            if(j==this.mDay) {
              mNewButton.setSelected(true);
              mNewButton.setEnabled(false);
              mNewButton.setBackground(new Color(84,215,4));
            }
            mNewButton.addActionListener(this);
            mPanel3.add(mNewButton);
          }
          else {
            mPanel3.add(new JLabel());
          }
        }
        mPanel1.add(mPanel3,BorderLayout.CENTER);
        this.validate();
      }
    }
      

  2.   

    to alphazhao(绿色咖啡) CenterShowDialog cs = new CenterShowDialog(this);
    CenterShowDialog 是什么?
      

  3.   

    不好意思,是居中显示
    我也给你,如下:
    package alpha;
    import java.awt.*;
    /**
     * 作者:alpha
     * 日期:2002-5-24
     * 描述:进入参数Dialog,使显示的图形界面显示居中
     * */public class CenterShowDialog {
    //  public CenterShowFrame(Frame frame) {
    //  若为frame改所有dialog字段为frame
      public CenterShowDialog(Dialog dialog) {//目标显示为对话框
        dialog.setResizable(false);//不准最大化
        //Center the window
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension dialogSize = dialog.getSize();
        if (dialogSize.height > screenSize.height) {
          dialogSize.height = screenSize.height;
        }
        if (dialogSize.width > screenSize.width) {
          dialogSize.width = screenSize.width;
        }
        dialog.setLocation((screenSize.width - dialogSize.width) / 2,
          (screenSize.height - dialogSize.height) / 2);
      }
    }
    //end
      

  4.   

    我也来一个::
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import com.borland.jbcl.control.*;
    import java.util.Calendar ;
    import jclass.bwt.* ;
    import javax.swing.table.*;class Date_eq extends JDialog {
      JPanel panel1 = new JPanel();
      JPanel panel2 = new JPanel();
      Border border1;
      JTextField bm = new JTextField();    GroupBox groupBox1 = new GroupBox();
        BorderLayout borderLayout1 = new BorderLayout();
        GridLayout gridLayout2 = new GridLayout();
        JPanel jPanel2 = new JPanel();
        BorderLayout borderLayout2 = new BorderLayout();
        JPanel jPanel3 = new JPanel();
        JPanel jPanel4 = new JPanel();
        JComboBox month = new JComboBox();
        FlowLayout flowLayout1 = new FlowLayout();
        FlowLayout flowLayout2 = new FlowLayout();
        JPanel jPanel5 = new JPanel();
        JScrollPane jScrollPane1 = new JScrollPane();
        GridLayout gridLayout3 = new GridLayout();
        
        Date_JTable jTable_date = new Date_JTable();
        JCSpinBox year = new JCSpinBox();
        String[] days = new String[42];
        String[][] day = new String[6][7];
        Calendar thisMonth = Calendar.getInstance();
        String[] week = new String[7];
        String[][] Data = new String[6][7];
        int int_height = 0;
        int intYear = 0 , intMonth = 0 , intDay = 0 ;
        boolean flag = false;
        String strSelectText = "" ;//    public boolean result = false ;
        public int result ;
        public String date = null;
        GridLayout gridLayout1 = new GridLayout();
        JPanel jPanel1 = new JPanel();
        public JLabel jLabel1 = new JLabel();
        
      public Date_eq(Frame frame, String title, boolean modal , String strSelectText ) {
        super(frame, title, modal);
        try {
          if(!(String.valueOf (strSelectText).equals ("null")))        
            this.strSelectText = strSelectText ;
          jbInit();
        }
        catch (Exception e) {
          JOptionPane.showMessageDialog ( this , e.getMessage () , "ERRor" , JOptionPane.ERROR_MESSAGE ) ;
          e.printStackTrace();
        }    pack();
      }  public Date_eq(Frame frame, String title, boolean modal) {
        this(frame, title, modal, ""); 
      }  public Date_eq(Frame frame) {
        this(frame, "", false , "" );
      }  private void jbInit() throws Exception {
            week[0] = "星期日";
            week[1] = "星期一";
            week[2] = "星期二";
            week[3] = "星期三";
            week[4] = "星期四";
            week[5] = "星期五";
            week[6] = "星期六";
            for (int i = 0 ;  i < 42 ;  i++){
               int x = i/7;
               int y = i - (x)*7;
               day[x][y] = "";
            }
            
        border1 = BorderFactory.createRaisedBevelBorder();
        panel2.setBorder(BorderFactory.createLineBorder(Color.black));
            panel2.setLayout(gridLayout2);
        this.addWindowListener(new Date_eq_this_windowAdapter(this));
        panel1.setLayout(gridLayout1);
            groupBox1.setLayout(borderLayout1);
            jPanel2.setLayout(borderLayout2);
            jPanel4.setLayout(flowLayout1);
            flowLayout1.setVgap(2);
            jPanel3.setLayout(flowLayout2);
            flowLayout2.setVgap(0);
            month.setPreferredSize(new Dimension(78, 24));
            month.addItemListener(new java.awt.event.ItemListener() {            public void itemStateChanged(ItemEvent e) {
                    month_itemStateChanged(e);
                }
            });
            jPanel5.setLayout(gridLayout3);
            gridLayout3.setVgap(2);
            //bm.setPreferredSize(new Dimension(100, 30));
            year.setPreferredSize(new Dimension(56, 26));
            year.setInsets(new java.awt.Insets(0,0,0,12));
            year.setMinimumSize(new Dimension(20, 10));
            year.setColumns(3);
            year.setHighlightThickness(0);
            year.setMaximum(2100);
            year.setMaximumLength(2100);
            year.setMinimum(1900);
            year.setText("2000");
            year.addTextListener(new jclass.bwt.JCTextAdapter() {            public void textValueChangeEnd(JCTextEvent e) {
                    year_textValueChangeEnd(e);
                }
            });
            year.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseReleased(MouseEvent e) {
                    year_mouseReleased(e);
                }        });
            year.addKeyListener(new java.awt.event.KeyAdapter() {            public void keyReleased(KeyEvent e) {
                    year_keyReleased(e);
                }
            });
            bm.setHorizontalAlignment(SwingConstants.CENTER);
            jTable_date.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(MouseEvent e) {
                    jTable_date_mouseClicked(e);
                }
            });        groupBox1.addComponentListener(new java.awt.event.ComponentAdapter() {            public void componentResized(ComponentEvent e) {
                    groupBox1_componentResized(e);
                }
            });
            panel1.setMinimumSize(new Dimension(330, 200));
            panel1.setPreferredSize(new Dimension(330, 200));
            panel1.add(panel2, null);
            panel2.add(groupBox1, null);
            groupBox1.add(jPanel2, BorderLayout.NORTH);
            jPanel2.add(jPanel3, BorderLayout.WEST);
            jPanel3.add(year, null);
            //jPanel3.add(bm, null);
            jPanel2.add(jPanel4, BorderLayout.EAST);
            jPanel4.add(month, null);
            jPanel2.add(jPanel1, BorderLayout.CENTER);
            jPanel1.add(jLabel1, null);
            groupBox1.add(jPanel5, BorderLayout.CENTER);
            jPanel5.add(jScrollPane1, null);
            jScrollPane1.getViewport().add(jTable_date, null);
            getContentPane().add(panel1);        String strYear = "" , strMonth = "" , strDay = "" ;
            if ( ! strSelectText.equals ( "" ) ) {
               int intMark = 0 ;
               String str = "" ;
               for ( int i = 0 ; i < strSelectText.length () ; i++ ) {
                 str = strSelectText.substring ( i , i + 1 ) ;
                 if ( str.equals ( "-" ) ) {
                    intMark = i ;
                    break ;
                 }  
                 strYear = strYear + str ;
               }           for ( int i = intMark + 1 ; i < strSelectText.length () ; i++ ) {
                 str = strSelectText.substring ( i , i + 1 ) ;
                 if ( str.equals ( "-" ) ) {
                    intMark = i ;
                    break ;
                 }  
                 strMonth = strMonth + str ;
               }           strDay = strSelectText.substring ( intMark + 1 , strSelectText.length () ) ;
               intYear = Integer.parseInt ( strYear ) ;
               intMonth = Integer.parseInt ( strMonth ) ;
               intDay = Integer.parseInt ( strDay ) ;
            }
            else {
               java.util.Date dt = new java.util.Date() ;
           intYear = dt.getYear () + 1900 ;
           intMonth = dt.getMonth () + 1 ;
           intDay = dt.getDate () ;
            }
        
            year.setPreferredSize (60,24);
            year.setIntValue( intYear );
            month.addItem ("一月");
            month.addItem ("二月");
            month.addItem ("三月");
            month.addItem ("四月");
            month.addItem ("五月");
            month.addItem ("六月");
            month.addItem ("七月");
            month.addItem ("八月");
            month.addItem ("九月");
            month.addItem ("十月");
            month.addItem ("十一月");
            month.addItem ("十二月");
    class Date_eq_this_windowAdapter extends WindowAdapter {
      Date_eq adaptee;  Date_eq_this_windowAdapter(Date_eq adaptee) {
        this.adaptee = adaptee;
      }  public void windowClosing(WindowEvent e) {
        adaptee.this_windowClosing(e);
      }
    }class Date_JTable extends JTable {
       public Date_JTable(Object[][] a, Object[] b) {
         super(a,b);
       }   public Date_JTable() {
         super();
       }    public boolean isCellEditable(int parm1, int parm2) {
            //TODO: override this javax.swing.JTable method;
            return false;
      

  5.   

    上面的错了
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import com.borland.jbcl.control.*;
    import java.util.Calendar ;
    import jclass.bwt.* ;
    import javax.swing.table.*;class Date_eq extends JDialog {
      JPanel panel1 = new JPanel();
      JPanel panel2 = new JPanel();
      Border border1;
      JTextField bm = new JTextField();    GroupBox groupBox1 = new GroupBox();
        BorderLayout borderLayout1 = new BorderLayout();
        GridLayout gridLayout2 = new GridLayout();
        JPanel jPanel2 = new JPanel();
        BorderLayout borderLayout2 = new BorderLayout();
        JPanel jPanel3 = new JPanel();
        JPanel jPanel4 = new JPanel();
        JComboBox month = new JComboBox();
        FlowLayout flowLayout1 = new FlowLayout();
        FlowLayout flowLayout2 = new FlowLayout();
        JPanel jPanel5 = new JPanel();
        JScrollPane jScrollPane1 = new JScrollPane();
        GridLayout gridLayout3 = new GridLayout();
        
        Date_JTable jTable_date = new Date_JTable();
        JCSpinBox year = new JCSpinBox();
        String[] days = new String[42];
        String[][] day = new String[6][7];
        Calendar thisMonth = Calendar.getInstance();
        String[] week = new String[7];
        String[][] Data = new String[6][7];
        int int_height = 0;
        int intYear = 0 , intMonth = 0 , intDay = 0 ;
        boolean flag = false;
        String strSelectText = "" ;//    public boolean result = false ;
        public int result ;
        public String date = null;
        GridLayout gridLayout1 = new GridLayout();
        JPanel jPanel1 = new JPanel();
        public JLabel jLabel1 = new JLabel();
        
      public Date_eq(Frame frame, String title, boolean modal , String strSelectText ) {
        super(frame, title, modal);
        try {
          if(!(String.valueOf (strSelectText).equals ("null")))        
            this.strSelectText = strSelectText ;
          jbInit();
        }
        catch (Exception e) {
          JOptionPane.showMessageDialog ( this , e.getMessage () , "ERRor" , JOptionPane.ERROR_MESSAGE ) ;
          e.printStackTrace();
        }    pack();
      }  public Date_eq(Frame frame, String title, boolean modal) {
        this(frame, title, modal, ""); 
      }  public Date_eq(Frame frame) {
        this(frame, "", false , "" );
      }  private void jbInit() throws Exception {
            week[0] = "星期日";
            week[1] = "星期一";
            week[2] = "星期二";
            week[3] = "星期三";
            week[4] = "星期四";
            week[5] = "星期五";
            week[6] = "星期六";
            for (int i = 0 ;  i < 42 ;  i++){
               int x = i/7;
               int y = i - (x)*7;
               day[x][y] = "";
            }
            
        border1 = BorderFactory.createRaisedBevelBorder();
        panel2.setBorder(BorderFactory.createLineBorder(Color.black));
            panel2.setLayout(gridLayout2);
        this.addWindowListener(new Date_eq_this_windowAdapter(this));
        panel1.setLayout(gridLayout1);
            groupBox1.setLayout(borderLayout1);
            jPanel2.setLayout(borderLayout2);
            jPanel4.setLayout(flowLayout1);
            flowLayout1.setVgap(2);
            jPanel3.setLayout(flowLayout2);
            flowLayout2.setVgap(0);
            month.setPreferredSize(new Dimension(78, 24));
            month.addItemListener(new java.awt.event.ItemListener() {            public void itemStateChanged(ItemEvent e) {
                    month_itemStateChanged(e);
                }
            });
            jPanel5.setLayout(gridLayout3);
            gridLayout3.setVgap(2);
            //bm.setPreferredSize(new Dimension(100, 30));
            year.setPreferredSize(new Dimension(56, 26));
            year.setInsets(new java.awt.Insets(0,0,0,12));
            year.setMinimumSize(new Dimension(20, 10));
            year.setColumns(3);
            year.setHighlightThickness(0);
            year.setMaximum(2100);
            year.setMaximumLength(2100);
            year.setMinimum(1900);
            year.setText("2000");
            year.addTextListener(new jclass.bwt.JCTextAdapter() {            public void textValueChangeEnd(JCTextEvent e) {
                    year_textValueChangeEnd(e);
                }
            });
            year.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseReleased(MouseEvent e) {
                    year_mouseReleased(e);
                }        });
            year.addKeyListener(new java.awt.event.KeyAdapter() {            public void keyReleased(KeyEvent e) {
                    year_keyReleased(e);
                }
            });
            bm.setHorizontalAlignment(SwingConstants.CENTER);
            jTable_date.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(MouseEvent e) {
                    jTable_date_mouseClicked(e);
                }
            });        groupBox1.addComponentListener(new java.awt.event.ComponentAdapter() {            public void componentResized(ComponentEvent e) {
                    groupBox1_componentResized(e);
                }
            });
            panel1.setMinimumSize(new Dimension(330, 200));
            panel1.setPreferredSize(new Dimension(330, 200));
            panel1.add(panel2, null);
            panel2.add(groupBox1, null);
            groupBox1.add(jPanel2, BorderLayout.NORTH);
            jPanel2.add(jPanel3, BorderLayout.WEST);
            jPanel3.add(year, null);
            //jPanel3.add(bm, null);
            jPanel2.add(jPanel4, BorderLayout.EAST);
            jPanel4.add(month, null);
            jPanel2.add(jPanel1, BorderLayout.CENTER);
            jPanel1.add(jLabel1, null);
            groupBox1.add(jPanel5, BorderLayout.CENTER);
            jPanel5.add(jScrollPane1, null);
            jScrollPane1.getViewport().add(jTable_date, null);
            getContentPane().add(panel1);        String strYear = "" , strMonth = "" , strDay = "" ;
            if ( ! strSelectText.equals ( "" ) ) {
               int intMark = 0 ;
               String str = "" ;
               for ( int i = 0 ; i < strSelectText.length () ; i++ ) {
                 str = strSelectText.substring ( i , i + 1 ) ;
                 if ( str.equals ( "-" ) ) {
                    intMark = i ;
                    break ;
                 }  
                 strYear = strYear + str ;
               }           for ( int i = intMark + 1 ; i < strSelectText.length () ; i++ ) {
                 str = strSelectText.substring ( i , i + 1 ) ;
                 if ( str.equals ( "-" ) ) {
                    intMark = i ;
                    break ;
                 }  
                 strMonth = strMonth + str ;
               }           strDay = strSelectText.substring ( intMark + 1 , strSelectText.length () ) ;
               intYear = Integer.parseInt ( strYear ) ;
               intMonth = Integer.parseInt ( strMonth ) ;
               intDay = Integer.parseInt ( strDay ) ;
            }
            else {
               java.util.Date dt = new java.util.Date() ;
           intYear = dt.getYear () + 1900 ;
           intMonth = dt.getMonth () + 1 ;
           intDay = dt.getDate () ;
            }
        
            year.setPreferredSize (60,24);
            year.setIntValue( intYear );
            month.addItem ("一月");
            month.addItem ("二月");
            month.addItem ("三月");
            month.addItem ("四月");
            month.addItem ("五月");
            month.addItem ("六月");
            month.addItem ("七月");
            month.addItem ("八月");
            month.addItem ("九月");
            month.addItem ("十月");
            month.addItem ("十一月");
            month.addItem ("十二月");
      

  6.   

    承上
            month.setSelectedIndex ( intMonth - 1 );        int intRows = jTable_date.getRowCount () ;
            int intCols = jTable_date.getColumnCount () ;
            for ( int i = 0 ; i < intRows ; i++ ) {
              for ( int j = 0 ; j < intCols ; j++ ) {
                if ( ! jTable_date.getValueAt ( i , j ).equals ( "" ) && jTable_date.getValueAt ( i , j ) != null ) {
                   int intNDay = Integer.parseInt ( (String) jTable_date.getValueAt ( i , j ) ) ;
                   if ( intNDay == intDay ) {
                      jTable_date.setRowSelectionInterval ( i , i ); 
                      jTable_date.setColumnSelectionInterval ( j , j ); 
                   }
                }
              }
            }
            jLabel1.setText ( String.valueOf ( intYear ).trim () + "-" + String.valueOf ( intMonth ).trim () + "-" + String.valueOf ( intDay ).trim ()  ) ;
       }  // OK
      void button1_actionPerformed(ActionEvent e) {
        dispose();
      }  // Cancel
      void button2_actionPerformed(ActionEvent e) {
        dispose();
      }  void this_windowClosing(WindowEvent e) {
        dispose();
      }    void set_day() {
            for (int i=0; i<42; i++) {
              days[i] = "";
            }        String str_year = year.getText ().trim ();
            if(month!=null&&(!month.equals("null")))
                thisMonth.set(Calendar.MONTH, month.getSelectedIndex ());
            if(year!=null&&(!year.equals("null")))
                thisMonth.set(Calendar.YEAR, Integer.parseInt(str_year) );
            str_year=String.valueOf(thisMonth.get(Calendar.YEAR));
            String str_month=String.valueOf(thisMonth.get(Calendar.MONTH));
            thisMonth.setFirstDayOfWeek(Calendar.SUNDAY);
            thisMonth.set(Calendar.DAY_OF_MONTH,1);
            int firstIndex=thisMonth.get(Calendar.DAY_OF_WEEK)-1;
            int maxIndex=thisMonth.getActualMaximum(Calendar.DAY_OF_MONTH);
            for(int i=0;i<maxIndex;i++) {
                days[firstIndex+i]=String.valueOf(i+1);
            }
            for (int i=0; i<42; i++){
               int x = i/7;
               int y = i - (x)*7;
               day[x][y] = days[i];
            }        int t = 0;
            if (!flag) {
              jTable_date = new Date_JTable(day, week);
              flag = true;
            }
            //int height = jTable_height/7;
            //this.set_height ();
            this.add_listener ();
            jTable_date.getTableHeader ().setReorderingAllowed (false);
            DefaultTableCellRenderer render = new DefaultTableCellRenderer();
            render.setHorizontalAlignment(JLabel.CENTER);
            for (int i=0; i<7; i++)
              jTable_date.getColumn (week[i]).setCellRenderer(render);
            jTable_date.setRowSelectionAllowed( false );
            jTable_date.setCellSelectionEnabled(true);
            jTable_date.getSelectionModel().setSelectionMode (ListSelectionModel.SINGLE_SELECTION);
            jScrollPane1.getViewport().add(jTable_date, null);
            try {
              jTable_date.setRowHeight (int_height);
              this.set_label ();
            } catch (Exception sqle) {  }
        }    void month_itemStateChanged(ItemEvent e) {
           this.set_day ();
        }    void year_keyReleased(KeyEvent e) {
            this.set_day ();
        }    void year_mouseReleased(MouseEvent e) {
            this.set_day ();
        }    void year_textValueChangeEnd(JCTextEvent e) {
           this.set_day ();
        }
        
        
        void jTable_date_mouseClicked(MouseEvent e) {
            String str_month = String.valueOf(month.getSelectedIndex()+1);
            if (str_month.length ()==1)
              str_month = "0"+str_month;
            String str_date = jTable_date.getValueAt(jTable_date.getSelectedRow(),jTable_date.getSelectedColumn()).toString();
            if (str_date.length ()==1)
              str_date = "0"+str_date;
              
            if(e.getClickCount() == 2){
                String tmp = jTable_date.getValueAt(jTable_date.getSelectedRow(),jTable_date.getSelectedColumn()).toString();
                if(tmp.trim().equals("")){
                }else{
    //                result  =  true ;
                    result  =  1 ;
                    date = year.getText().trim()+"-"+str_month+"-"+str_date;
                    jLabel1.setText (date);
                    dispose();
                }        }
            if(e.getClickCount() == 1){
                
                String tmp = jTable_date.getValueAt(jTable_date.getSelectedRow(),jTable_date.getSelectedColumn()).toString();
                if(tmp.trim().equals("")){
                   jLabel1.setText ("");
                }else{
                    date = year.getText().trim()+"-"+str_month+"-"+str_date;
                    jLabel1.setText (date);
                }        }
        }    void set_label() {
            String str_month = String.valueOf(month.getSelectedIndex()+1);
            if (str_month.length ()==1)
              str_month = "0"+str_month;
            String str_date = jTable_date.getValueAt(jTable_date.getSelectedRow(),jTable_date.getSelectedColumn()).toString();
            if (str_date.length ()==1)
              str_date = "0"+str_date;
                String tmp = jTable_date.getValueAt(jTable_date.getSelectedRow(),jTable_date.getSelectedColumn()).toString();
                if(tmp.trim().equals("")){
                   jLabel1.setText ("");
                }else{
                    date = year.getText().trim()+"-"+str_month+"-"+str_date;
                    jLabel1.setText (date);
                }
        }    void add_listener() {
            jTable_date.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(MouseEvent e) {
                    jTable_date_mouseClicked(e);
                }
            });
            jTable_date.getTableHeader().addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                    int i = jTable_date.getTableHeader().columnAtPoint(new Point(e.getX(),0));
                    //System.out.println("header clicked !"+ String.valueOf(i));
                 }
                });
        }    void groupBox1_componentResized(ComponentEvent e) {
           this.set_height ();
         }     void set_height() {
            double jTable_height = jScrollPane1.getSize().getHeight();
            //int height = jTable_height/7;        int height = (int) ((jTable_height- jTable_date.getTableHeader ().getHeight ()-4)/6);
            int_height = height;
            jTable_date.setRowHeight (height);    }    public String getTodayDate() {
          java.util.Date dt=new java.util.Date() ;
      int intTYear= dt.getYear () ;
      int intTMonth=dt.getMonth () ;
      int intTDay=dt.getDate () ;
       return (String.valueOf (intTYear+1900)+"-"+String.valueOf (intTMonth+1)+"-"+String.valueOf (intTDay));
        } }class Date_eq_this_windowAdapter extends WindowAdapter {
      Date_eq adaptee;  Date_eq_this_windowAdapter(Date_eq adaptee) {
        this.adaptee = adaptee;
      }  public void windowClosing(WindowEvent e) {
        adaptee.this_windowClosing(e);
      }
    }class Date_JTable extends JTable {
       public Date_JTable(Object[][] a, Object[] b) {
         super(a,b);
       }   public Date_JTable() {
         super();
       }    public boolean isCellEditable(int parm1, int parm2) {
            //TODO: override this javax.swing.JTable method;
            return false;
        }
    //   public
    }
      

  7.   

    import com.borland.jbcl.control.*;
    import jclass.bwt.* ;
    这些API哪里有download?
      

  8.   

    import com.borland.jbcl.control.*;
    这个用到了borland的类库,可是我们大多数没有装JBUILD呀,一般用的都是JDK。
      

  9.   

    http://outinn.myetang.com/code/index.htm这里有一个java日历控件下载.去看看吧,也许有用.