java调用日期控件_Java Swing日期控件的使用

这个博客介绍了如何在Java中创建一个自定义的日期选择器组件,使用Swing库来实现。`Chooser`类是一个自定义的日期控件,包含标题、主体和页脚三个部分,提供日期的选择和展示功能。用户可以通过点击一个组件(如JTextField)来显示或隐藏日期选择器,并在选中日期后更新组件显示的日期。博客还提供了调用和使用该日期选择器工具类的示例代码。
摘要由CSDN通过智能技术生成

1.创建一个日期工具类

package com.zjl.utils;

import java.awt.BasicStroke;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Component;

import java.awt.Cursor;

import java.awt.Dimension;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.GridLayout;

import java.awt.Point;

import java.awt.Polygon;

import java.awt.Stroke;

import java.awt.Toolkit;

import java.awt.event.FocusEvent;

import java.awt.event.FocusListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.Date;

import java.util.List;

import javax.swing.BorderFactory;

import javax.swing.JComponent;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.PopupFactory;

import javax.swing.SwingUtilities;

import javax.swing.event.AncestorEvent;

import javax.swing.event.AncestorListener;

/**

* @author Ares

* @Describe(Date Chooser class)

*/

public class Chooser extends JPanel{

private static final long serialVersionUID = -5384012731547358720L;

private Calendar calendar;

private Calendar now = Calendar.getInstance();

private JPanel calendarPanel;

private java.awt.Font font = new java.awt.Font("Times",java.awt.Font.PLAIN,12);

private java.text.SimpleDateFormat sdf;

private final LabelManager lm = new LabelManager();

private javax.swing.Popup pop;

private TitlePanel titlePanel;

private BodyPanel bodyPanel;

private FooterPanel footerPanel;

private JComponent showDate;

private boolean isShow = false;

private static final String DEFAULTFORMAT = "yyyy-MM-dd";

private static final String[] showTEXT = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};

private static WeekLabel[] weekLabels = new WeekLabel[7];

private static int defaultStartDAY = 0;//0 is from Sun, 1 is from Mon, 2 is from Tue

private static Color hoverColor = Color.BLUE; // hover color

private Chooser(java.util.Date date, String format, int startDAY){

if(startDAY > -1 && startDAY < 7) defaultStartDAY = startDAY;

int dayIndex = defaultStartDAY;

for(int i=0; i<7; i++){

if(dayIndex > 6) dayIndex = 0;

weekLabels[i] = new WeekLabel(dayIndex, showTEXT[dayIndex]);

dayIndex ++ ;

}

sdf = new java.text.SimpleDateFormat(format);

calendar = Calendar.getInstance();

calendar.setTime(date);

initCalendarPanel();

}

public static Chooser getInstance(java.util.Date date, String format){

return new Chooser(date, format, defaultStartDAY);

}

public static Chooser getInstance(java.util.Date date){

return getInstance(date, DEFAULTFORMAT);

}

public static Chooser getInstance(String format){

return getInstance(new java.util.Date(), format);

}

public static Chooser getInstance(){

return getInstance(new java.util.Date(), DEFAULTFORMAT);

}

private void initCalendarPanel(){

calendarPanel = new JPanel(new java.awt.BorderLayout());

calendarPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0xAA, 0xAA, 0xAA)));

calendarPanel.add(titlePanel = new TitlePanel(), java.awt.BorderLayout.NORTH);

calendarPanel.add(bodyPanel = new BodyPanel(), java.awt.BorderLayout.CENTER);

calendarPanel.add(footerPanel = new FooterPanel(),java.awt.BorderLayout.SOUTH);

this.addAncestorListener(new AncestorListener() {

public void ancestorAdded(AncestorEvent event) { }

public void ancestorRemoved(AncestorEvent event) {hidePanel();}

//hide pop when move component.

public void ancestorMoved(AncestorEvent event) {

hidePanel();

}

});

}

public

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值