效果图:
简要说明:
一个视图类: HongYeLingGuDate
一个抽象接口: SelectHYDateAbstract
需要导入的jar包: http://download.youkuaiyun.com/detail/male09/9884835
中的 flowlayout_v.jar 文件
示例代码:
HongYeLingGuDate类
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
import javax.swing.border.EmptyBorder;
import com.changda.fingerservice.javaframe.VFlowLayout;
import hong.yelinggu.date.absinterface.SelectHYDateAbstract;
public class HongYeLingGuDate {
private final JFrame frTime = new JFrame("请选择日期时间");
private JPanel jPtimeWeek, jPtimeDay, year_form, ybJPanel, month_form, mbJPanel;
private JButton btn_year_close, btn_month_close, btn_year_left, btn_year_right, btn_yes, btn_closed;
private Box box;
private JComboBox<String> jtf_H = null, jtf_m = null, jtf_s = null;
private SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private List<JButton> btnList = new ArrayList<>();
private JButton yearStart, monthEnd;
private String SelectNow_day = "01";
private int yearPage = 1;// 年份的页码
private final int yearGAP = 5;// 首页的年差
private final int PAGE_MAIN = 0;
private final int PAGE_YEAR = 1;
private final int PAGE_MONTH = 2;
private Calendar instance = Calendar.getInstance();
private int now_year = 0;
private int now_month = 0;
private int now_day = 0;
private int now_hous = 0;
private int now_min = 0;
private int now_ss = 0;
private SelectHYDateAbstract HdateInterface;
String returnDateFormat = null;
/**
* 实例化控件
*
* @param returnDateFormat
* 返回的时间格式
*/
public HongYeLingGuDate(String returnFormat) {
// TODO Auto-generated constructor stub
returnDateFormat = returnFormat;
}
/**
* 创建时间拾取器
*/
public void creatDatePicker(SelectHYDateAbstract dateInterface) {
// TODO Auto-generated method stub
//判断如果时间控件是显示可见的就不执行了,防止多次执行
if (frTime.isVisible()){
return;
}
HdateInterface = dateInterface;
Date dateTime = new java.util.Date();
String StringTime = sdFormat.format(dateTime);
instance.setTime(dateTime);
String[] splDate = StringTime.split(" ");
String dateAssemble = splDate[0];
String timeAssemble = splDate[1];
String[] splitItemDate = dateAssemble.split("-");// 日期
String[] splitItemTime = timeAssemble.split(":");// 时间
now_year = Integer.parseInt(splitItemDate[0]);
now_month = Integer.parseInt(splitItemDate[1]);
now_day = Integer.parseInt(splitItemDate[2]);
now_hous = Integer.parseInt(splitItemTime[0]);
now_min = Integer.parseInt(splitItemTime[1]);
now_ss = Integer.parseInt(splitItemTime[2]);
frTime.getContentPane().setLayout(new VFlowLayout());
// 年,月,日选择入口区
JPanel jPtim