电话:0731-83595998
导航

JAVA写的日期选择器

来源: 2017-12-22 10:23

 百度广告

  以前写过一个字体选择器,最近在工作的过程中,发现日期选择器也很重要,可是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

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端