Java常用代码模块 - 不定时更新中(一)

2014-11-24 09:17:16 · 作者: · 浏览: 2
一、DataChoose 日期选择模块
/** 
 * 日期的选择控件,可以作为普通的组件使用,在构造函数中,必须传入一个该组件的所有者对象。 
 * 并且该对象只能是一个Frame对象或者一个JFrame对象。 
 * 使用方法如下: 
 *       JFrame. frame2 = new JFrame(); 
 *       frame2.getContentPane().setLayout(null); 
 *       DateChooser date = new DateChooser(frame2); 
 *       frame2.getContentPane().add(date); 
 *       frame2.setSize(500, 400); 
 *       frame2.setVisible(true);  
 *组件的外观象一个combox,单击下拉按钮就可以对日期进行选择。 
 * Title: 日期选择控件 
 * Copyright: Copyright (c) 2006 
 * Company: Xaccp 
 * Date:2006年6月17日 
 * @author Tellixu(许天岭) 
 * @version 1.0 
 */  
class DateChooser  extends JPanel  
{  
      
        private int width = 200; //日期控件的宽度  
        private int height = 220; //日期控件的高度  
      
        private GridBagLayout gridBagLayout1 = new GridBagLayout();  //  @jve:decl-index=0:  
        private JTextField dateField = new JTextField();  
        private DateChooserButton btnChoose = new DateChooserButton("\u25BC"); //\u25BC是指: 下拉箭头的unicode码  
        private String parten;  
        private Container owner;  
        private int length=90;  
        public DateChooser(Container owner,int length) {  
           this.owner = owner;  
           this.parten = "yyyy-MM-dd";  
           this.length=length;  
           try {  
               init();  
           }  
           catch (Exception ex) {  
               ex.printStackTrace();  
           }  
       }  
        /** 
         * 根据一个所有者和一个日期的显示格式构造一个DateChooser对象。 
         */  
        public DateChooser(Container owner, String partten,int length) {  
            this.owner = owner;  
            this.parten = partten;  
            this.length=length;  
            try {  
                init();  
            }  
            catch (Exception ex) {  
                ex.printStackTrace();  
            }  
        }  
        /** 
         * 根据一个所有者和一个日期的显示格式构造一个DateChooser对象。 
         */  
        public DateChooser(Container owner, String partten) {  
            this.owner = owner;  
            this.parten = partten;  
            try {  
                init();  
            }  
            catch (Exception ex) {  
                ex.printStackTrace();  
            }  
      
        }  
        /** 
         * 以缺省的partten构建DateChooser对象 
         * 日期选择框的所有者必须是Frame或者是JFrame对象。 
         */  
        public DateChooser(Container owner) {  
            this.owner = owner;  
            this.parten = "yyyy-MM-dd";  
            try {  
                init();  
            }  
            catch (Exception ex) {  
                ex.printStackTrace();  
            }  
        }  
      
        /** 
         * 
系统
初始化 * @throws Exception */ private void init() throws Exception { dateField.setToolTipText("单击右边的按钮即可选择日期"); btnChoose.setToolTipText("单击即可选择日期"); this.setLayout(gridBagLayout1); dateField.setEditable(false); btnChoose.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { DateChooser.this.btnChoose_actionPerformed(e); } }); Date date = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat(parten); this.setText(simpleDateFormat.format(date)); this.add(dateField, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), this.length, 0)); this.add(btnChoose, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); } public void setToolTipText(String text) { dateField.setToolTipText(text); btnChoose.setToolTipText(text); } /** * 下拉按钮的事件处理 * @param e ActionEvent */ public void btnChoose_actionPerformed(ActionEvent e) { java.awt.Rectangle r = dateField.getBounds(); Point pOnScreen = dateField.getLocationOnScreen(); Point result = new Point(pOnScreen.x, pOnScreen.y + r.height); Point powner = owner.getLocation(); int offsetX = (pOnScreen.x + width) - (powner.x + owner.getWidth()); int offsetY = (pOnScreen.y + r.height + height) - (powner.y + ow