采用
JDatePicker-1.3.2-dist.zip開源包。很簡單貼上測試代碼,可以直接在項(xiàng)目中使用
package com.lx.test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import net.sourceforge.jdatepicker.JDateComponentFactory;
import net.sourceforge.jdatepicker.JDatePanel;
import net.sourceforge.jdatepicker.impl.UtilDateModel;
public class MyTest extends JDialog
{
/**
* @param jframe 外部的JFrame對象
* @param model 是否模式窗口,即該窗口獨(dú)占所有操作
* @param jtextfield 外部JFrame里面的一個(gè)JTextField對象即要填入的日期文本域
* @param screen_x 外部的JTextField點(diǎn)擊觸發(fā)一個(gè)MouseListener事件,傳入e.getXOnScreen() 和 e.getYOnScreen(); 即決定隨著鼠標(biāo)位置彈出該日期框
* @param screen_y 即MouseEvent的e.getXOnScreen() 和 e.getYOnScreen()
*/
public MyTest(JFrame jframe, boolean model,final JTextField jtextfield, int screen_x, int screen_y)
{
final JDatePanel jp = JDateComponentFactory.createJDatePanel(new UtilDateModel(new Date()));
jp.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
try{
jtextfield.setText(new SimpleDateFormat("yyyy-MM-dd").format(jp.getModel().getValue()));
//如果選中日期后,想消除JDialog,那么jp.addActionListener(new一個(gè)ActionListener的實(shí)現(xiàn)類,將this對象傳遞進(jìn)去)然后調(diào)用dispose()方法
}catch(Exception ex){
//該日期控件點(diǎn)擊Clear的時(shí)候會出異常,因?yàn)闆]有選中日期,如果要消除該異常,那么直接導(dǎo)入源代碼,在源碼里面改動。
//這里直接簡化操作,點(diǎn)擊Clear出現(xiàn)異常,直接將jtextfield賦值為""
jtextfield.setText("");
}
}
});
JPanel jpanel =(JPanel)jp;
this.add(jpanel);
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
this.setBounds(screen_x, screen_y, 300, 320);
this.setVisible(true);
}
public static void main(String[] args){
new MyTest(null,true,null,300,400);
}
}
JDatePicker-1.3.2-dist.zip 下載地址:
http://sourceforge.net/projects/jdatepicker/files/Releases/1.3.x/
posted on 2012-05-24 20:40
朔望魔刃 閱讀(6848)
評論(0) 編輯 收藏 所屬分類:
java