当前位置:首页 > 全部子站 > IT > 思科认证

JAVA写的日期选择器

来源:长理培训发布时间:2017-12-22 10:23:11

 百度广告

  以前写过一个字体选择器,最近在工作的过程中,发现日期选择器也很重要,可是Java没有提供一个可以直接选择日期的控件供我们使用,于是我就自己写了一个,由于它是继承自JPanel的,所以,可以放到任何地方.使用很方便,对外只提供了一个public方法,那就是getDate(),也提供了两个构造函数,一个是默认的,也就是以当前的日期做为初始化,也可以传入一个Date对象进行初始化.大家试用一下,有什么意见和问题可以提出来,也可以自己在源代码的基础上做更改.由于用了几个内部类,所以代码看上去会比较乱,大家就凑合一下吧

此主题相关图片

 

  /*
*
*
* and open the template in the editor.

  import Java.awt.BasicStroke;
import Java.awt.Color;
import Java.awt.Cursor;
import Java.awt.Font;
import Java.awt.Graphics2D;
import Java.awt.Point;
import Java.awt.Stroke;
import Java.awt.event.FocusEvent;
import Java.awt.event.MouseAdapter;
import Java.awt.event.MouseListener;
import Java.text.SimpleDateFormat;
import Java.util.Calendar;
import Java.util.Date;
import Javax.swing.BorderFactory;
import Javax.swing.JFrame;
import Javax.swing.JPanel;
import Javax.swing.PopupFactory;
import Javax.swing.event.AncestorEvent;

/**
* @author hadeslee
public class DateChooser extends JPanel{
  private Calendar now=Calendar.getInstance();
  private JPanel monthPanel;//月历
  private JP2 jp2;
  private JP4 jp4;
  private final LabelManager lm=new LabelManager();
  private SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
  private Popup pop;
   * Creates a new instance of DateChooser
  public DateChooser() {
  }
    initDate=date;
    select.setTime(initDate);
    initLabel();
  public void setEnabled(boolean b){
    showDate.setEnabled(b);
  /**
   */
    return select.getTime();
  //根据初始化的日期,初始化面板
    monthPanel=new JPanel(new BorderLayout());
    JPanel up=new JPanel(new BorderLayout());
    up.add(jp2=new JP2(),BorderLayout.CENTER);
    monthPanel.add(up,BorderLayout.NORTH);
    this.addAncestorListener(new AncestorListener(){
        
      
        
      //只要祖先组件一移动,马上就让popup消失
        hidePanel();
      
  }
  private void initLabel(){
    showDate.setRequestFocusEnabled(true);
      public void mousePressed(MouseEvent me){
      }
//    toSelect=new JLabel(sdf.format(initDate));
//    toSelect.setRequestFocusEnabled(true);
    this.add(showDate,BorderLayout.CENTER);
    this.setPreferredSize(new Dimension(90,25));
    showDate.addMouseListener(new MouseAdapter(){
        if(showDate.isEnabled()){
          showDate.setForeground(Color.RED);
      }
        if(showDate.isEnabled()){
          showDate.setForeground(Color.BLACK);
      }
        if(showDate.isEnabled()){
          if(isShow){
          }else{
          }
      }
        if(showDate.isEnabled()){
        }
    });
      public void focusLost(FocusEvent e){
      }
        
    });
  //根据新的日期刷新
    jp1.updateDate();
    SwingUtilities.updateComponentTreeUI(this);
  //提交日期
    System.out.println("选中的日期是:"+sdf.format(select.getTime()));
    hidePanel();
  private void hidePanel(){
      isShow=false;
      pop=null;
  }
    if(pop!=null){
    }
    SwingUtilities.convertPointToScreen(show,showDate);
    int x=show.x;
    if(x< 0){
    }
size.width-295){
    }
    if(y

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部