`

时间组件

 
阅读更多

单时间组件

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.util.Date;
import java.util.Locale;

import javax.swing.JPanel;

import com.eltima.components.ui.DatePicker;


/**
 * 时间选择框输入框
 * 
 * @author luojialin
 * @since 2014-3-14
 */
public class SFDatePicker extends JPanel {

	private static final long serialVersionUID = 3385428174172494736L;
	
	
    /*日期显示格式*/
	public static final String YYYY_MM_DD = "yyyy-MM-dd";
	/*日期时间格式*/
	public static final String YYY_MM_DD_HH_MM_SS = "yyyy-MM-dd hh:mm:ss";
	
    private static Font font=new Font("Times New Roman", Font.PLAIN, 14);
	private static Dimension dimension=new Dimension(100,24);
	
	private DatePicker startDatepick;
	
	public SFDatePicker() {
        this(YYY_MM_DD_HH_MM_SS);
	}
	
	public SFDatePicker(String formate) {
        super();
        
        this.setOpaque(false);
		startDatepick = new DatePicker(new Date(),formate,font,dimension);
		startDatepick.setLocale(Locale.CHINA);//设置国家
		startDatepick.setTimePanleVisible(true);//设置时钟面板可见
		startDatepick.setBorder(null);
		this.setLayout(new FlowLayout(FlowLayout.LEFT));
		this.add(startDatepick);
	}
	

	
	/**
	 * 设置是否可以使用
	 * @param flag
	 */
	public void setEnable(boolean flag){
		this.setEnabled(flag);
	}
	

	
	/**
	 * 获取控件时间
	 * @return
	 */
	public Date getDate(){
		return (Date)startDatepick.getValue();
	}
	
	/**
	 * 设置控件时间
	 * @param date
	 */
	public void setDate(Date date){
		startDatepick.a(date);
	}

	
	/**
	 * 设置 日期时间 显示样式
	 * @param formate
	 * 格式:YYYY_MM_DD</P>
	 * YYY_MM_DD_HH_MM_SS</P>
	 */
	public void setFormat(String format){
		
		Date date = new Date();
    	if(SFDatePicker.YYYY_MM_DD.equals(format)){
    		format = YYYY_MM_DD;
    		startDatepick = new DatePicker(date,format,font,dimension);
    		startDatepick = new DatePicker(date,format,font,dimension);
    		startDatepick.setTimePanleVisible(false);
    	}else if(SFDatePicker.YYY_MM_DD_HH_MM_SS.equals(format)){
    		format = YYY_MM_DD_HH_MM_SS;
    		startDatepick = new DatePicker(date,format,font,dimension);
    		startDatepick = new DatePicker(date,format,font,dimension);
    		startDatepick.setTimePanleVisible(true);
    	}
    }

	
	public void clearDatePicker(){
		startDatepick.getInnerTextField().setText("");
	}

	
	
}

 

 

双时间组件

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;

import javax.swing.JLabel;

import com.eltima.components.ui.DatePicker;
import com.sf.framework.i18n.Messages;
import com.sf.module.pcss.core.message.MessageManager;


/**
 * 双时间选择框输入框
 * 
 * @author luojialin
 * @since 2014-2-21
 */
public class DoubleDatePicker extends javax.swing.JPanel {

	private static final long serialVersionUID = 3385428174172494736L;
	
	
    /*日期显示格式*/
	public static final String YYYY_MM_DD = "yyyy-MM-dd";
	/*日期时间格式*/
	public static final String YYY_MM_DD_HH_MM_SS = "yyyy-MM-dd hh:mm:ss";
	
    private static Font font=new Font("Times New Roman", Font.PLAIN, 14);
	private static Dimension dimension=new Dimension(100,24);
	/**
	 *开始时间 
	 */
	private DatePicker startDatepick;
	/**
	 * 结束时间
	 */
	private DatePicker endDatepick;
	
	private JLabel betwenLbl;
	
	private JLabel redStartLbl;
	
	/**红星**/
	public  boolean redStart = false;
	
	public DoubleDatePicker() {
        this(null,false);
	}
	

	/**
	 * 双时间组件</P>
	 * 支持日期格式 :"yyyy-MM-dd"
	 * 支持日期时间格式:"yyyy-MM-dd hh:mm:ss"
	 * @param title   两个时间之间的 文字
	 */
	public DoubleDatePicker(String title) {
		this(title, false);
	}
	
	/**
	 * 双时间组件</P>
	 * 支持日期格式 :"yyyy-MM-dd"
	 * 支持日期时间格式:"yyyy-MM-dd hh:mm:ss"
	 * 
	 * @param title   两个时间之间的 文字
	 * @param redStart 是否显示 * 号
	 */
	public DoubleDatePicker(String title,  boolean redStart) {
		super();
		
		initGUI(title,null, redStart);
		
	}
	
	/**
	 * 双时间组件</P>
	 * 支持日期格式 :"yyyy-MM-dd"
	 * 支持日期时间格式:"yyyy-MM-dd hh:mm:ss"
	 * 
	 * @param title   两个时间之间的 文字
	 * @param formate 显示 格式
	 */
	public DoubleDatePicker(String title,  String formate) {
		super();
		initGUI(title,formate, false);
		
	}
	
	
	private void initGUI(String title, String formate, boolean redStart){
		this.setOpaque(false);
		betwenLbl = new JLabel(title);
		startDatepick = new DatePicker(new Date(),formate,font,dimension);
		endDatepick = new DatePicker(new Date(),formate,font,dimension);
		if(redStart)
			redStartLbl = new JLabel("<html><font color = red>* </font></html>");
		else
			redStartLbl = new JLabel();
		
		startDatepick.setLocale(Locale.CHINA);//设置国家
		startDatepick.setTimePanleVisible(true);//设置时钟面板可见
		startDatepick.setBorder(null);
		
		endDatepick.setLocale(Locale.CHINA);//设置国家
		endDatepick.setTimePanleVisible(true);//设置时钟面板可见
		endDatepick.setBorder(null);
		startDatepick.setPreferredSize(dimension);
		endDatepick.setPreferredSize(dimension);
		
		this.setLayout(new FlowLayout(FlowLayout.LEFT));
		this.add(startDatepick);
		this.add(betwenLbl);
		this.add(endDatepick);
		this.add(redStartLbl);
		
		this.startDatepick.getInnerTextField().addFocusListener(new FocusListener(){
			@Override
			public void focusGained(FocusEvent e) {
			}
			@Override
			public void focusLost(FocusEvent e) {
				if("".equals(startDatepick.getText().trim())){
					startDatepick.getInnerTextField().setValue(null);
				}else{
					 verify();
				}
			}
		});
		this.endDatepick.getInnerTextField().addFocusListener(new FocusListener(){
			@Override
			public void focusGained(FocusEvent e) {
			}
			@Override
			public void focusLost(FocusEvent e) {
				if("".equals(endDatepick.getText().trim())){
					endDatepick.getInnerTextField().setValue(null);
				}else{
					verify();
				}
			}
		});
		//this.setPreferredSize(new Dimension(600, 30));
	}

	private void verify(){
		Date start = (Date)startDatepick.getValue();
		Date end = (Date)endDatepick.getValue();
		if(start != null && end != null){
			if(start.after(end)){
				MessageManager.getInstance().error("",Messages.getString("time.setting.error"));
				endDatepick.getInnerTextField().setValue(null);
			}
		}
	}
	

	
	/**
	 * 设置是否可以使用
	 * @param flag
	 */
	public void setEnable(boolean flag){
		this.startDatepick.setEnabled(flag);
		this.endDatepick.setEnabled(flag);
	}
	

	/**
	 * 获取时间</P>
	 * 
	 * 返回List 格式的 Date 数组
	 * @return
	 */
	public List<Date> getDate(){
		Date start = (Date)this.startDatepick.getValue();
		Date end = (Date)this.endDatepick.getValue();
		List<Date> list = new ArrayList<Date>();
		list.add(start);
		list.add(end);
		return list;
	}
	
	/**
	 * 获取第一个控件时间
	 * @return
	 */
	public Date getFirstDate(){
		return (Date)this.startDatepick.getValue();
	}
	
	/**
	 * 获取第二个控件时间
	 * @return
	 */
	public Date getSecondDate(){
		return (Date)this.endDatepick.getValue();
	}
	
	/**
	 * 设置第一个控件时间
	 * @param date
	 */
	public void setFirstDate(Date date){
		startDatepick.a(date);
	}
	
	/**
	 * 设置第二个控件时间
	 * @param date
	 */
	public void setSecondDate(Date date){
		endDatepick.a(date);
	}
	
	public void setDate(List<Date> list){
		if(list.get(0) != null && list != null)
			startDatepick.a(list.get(0));
		if(list.get(1) != null && list != null)
			endDatepick.a(list.get(1));
	}

		
	public boolean isRedStart() {
		return redStart;
	}

	/**
	 * 设置红星
	 * @param redStart
	 */
	public void setRedStart(boolean redStart) {
		if(redStart){
			redStartLbl.setText("<html><font color = red>* </font></html>");
			redStart = true;
		}else{
			redStartLbl.setText("");
			redStart = false;
		}
			 
	}
	
	/**
	 * 设置 日期时间 显示样式
	 * @param formate
	 * 格式:YYYY_MM_DD</P>
	 * YYY_MM_DD_HH_MM_SS</P>
	 */
	public void setFormat(String format){
		Date date = new Date();
    	if(DoubleDatePicker.YYYY_MM_DD.equals(format)){
    		format = YYYY_MM_DD;
    		startDatepick = new DatePicker(date,format,font,dimension);
    		endDatepick = new DatePicker(date,format,font,dimension);
    		startDatepick.setTimePanleVisible(false);
    	}else if(DoubleDatePicker.YYY_MM_DD_HH_MM_SS.equals(format)){
    		format = YYY_MM_DD_HH_MM_SS;
    		startDatepick = new DatePicker(date,format,font,dimension);
    		endDatepick = new DatePicker(date,format,font,dimension);
    		startDatepick.setTimePanleVisible(true);
    	}
    }

	public void setTitleFont(Font font){
		this.redStartLbl.setFont(font);
		this.betwenLbl.setFont(font);
	}
	
	public void setDatePickerFont(Font font){
		this.startDatepick.setFont(font);
		this.endDatepick.setFont(font);
	}
	
	public void setDatePickerSize(Dimension dimsion){
		this.startDatepick.setPreferredSize(dimsion);
		this.endDatepick.setPreferredSize(dimsion);
	}
	
	
	public DatePicker getStartDatepick() {
		return startDatepick;
	}

	public void setStartDatepick(DatePicker startDatepick) {
		this.startDatepick = startDatepick;
	}

	public DatePicker getEndDatepick() {
		return endDatepick;
	}

	public void setEndDatepick(DatePicker endDatepick) {
		this.endDatepick = endDatepick;
	}
	
	public void clearDatePicker(){
		startDatepick.getInnerTextField().setText("");
		endDatepick.getInnerTextField().setText("");
	}

	
	
}

 

 

分享到:
评论

相关推荐

    强大的时间控件(精确到天、小时、分钟都可以)

    为了确保在各种操作系统和浏览器上的一致用户体验,开发者通常会选择使用Web标准或者跨平台的UI库,如React、Angular或Vue.js中的时间组件。这些组件通常经过精心设计,能很好地适应不同的设备和屏幕尺寸。 四、可...

    extjs时间控件精确秒

    在EXTJS这个强大的JavaScript框架中,时间控件是开发者经常使用的组件之一,尤其在构建复杂的Web应用程序时。EXTJS的时间控件允许用户选择或输入时间,通常以小时、分钟和秒为单位,提供了用户友好的界面和丰富的...

    js时间控件--在文本框添加时间弹出控件

    比如,jQuery UI中的Datepicker组件就是一个流行的选择,它可以提供跨浏览器的时间选择功能。 以下是一个使用jQuery UI Datepicker的基本步骤: 1. **引入库**: 在HTML文件中,你需要引入jQuery库和jQuery UI库的...

    js日期时间组件(控件)

    在提供的压缩包文件中,包含了一个名为“日期时间控件”的文件,很可能是用于测试的JSP文件,里面可能包含了具体的日期时间组件的实现和使用示例。通过研究这个文件,你可以更好地理解如何在实际项目中集成和配置...

    PB时间控件PB各种时间控件, PB各种时间控件, PB各种时间控件 PB各种时间控件

    PowerBuilder(PB)是一款强大的企业级应用程序...开发者可以根据实际应用的复杂性和用户界面的交互需求,灵活选择并定制适合的时间控制组件。通过熟练掌握这些控件的用法,可以构建出用户友好且功能强大的应用程序。

    时间控件,web前端

    时间控件是一种交互式的UI组件,它提供了一个图形化的方式来选择小时和分钟,有时甚至包括秒和时区。用户可以通过点击上下箭头或者直接输入来调整时间。时间控件通常与日期控件一起使用,形成日期时间选择器,为...

    WINFORM 时间控件(带时分秒)

    3. **事件处理**:为NumericUpDown控件添加事件处理程序,例如`ValueChanged`事件,当用户更改任一时间组件时,更新DateTimePicker的值。同时,也需要确保DateTimePicker的值变化时,更新NumericUpDown控件的显示。 ...

    css3时间控件

    CSS3的Flexbox布局可以轻松地对齐和排列这些时间组件,使得它们在不同屏幕尺寸上都能保持良好的布局。通过设置`display: flex`和相关的flex属性,我们可以确保小时、分钟和秒之间的间距均匀,同时还能实现响应式设计...

    IFIX要用到的VB时间控件

    VB时间控件是VB编程环境中用于显示、编辑和操作日期与时间的一种图形用户界面组件,它可以帮助开发者方便地与用户交互,处理与时间相关的信息。 IFIX系统中使用VB时间控件可以实现的功能包括但不限于以下几个方面:...

    BootStrap时间控件.zip

    Bootstrap时间控件是一种基于Twitter Bootstrap框架的用户界面组件,用于在网页上实现高效、美观的时间选择功能。Bootstrap作为最流行和广泛使用的前端开发框架之一,提供了丰富的预设样式、组件和JavaScript插件,...

    Extjs 5 日期时间控件

    它通过结合日期和时间选择器,满足了开发者对日期时间组件的需求,并且通过丰富的配置选项和事件处理机制,使得在实际项目中能够灵活应用。如果你在项目中使用了这个控件,记得查看`DateTimeField`的文档和示例,...

    dwz时间控件

    ### dwz时间控件知识点详解 #### 一、dwz时间控件简介 根据所提供的信息来看,“dwz时间控件”是一种用于Web开发中的日期时间选择插件,它基于jQuery库进行开发,主要应用于DWZ(Dynamic Web Zoo)框架中。这种...

    JS/WEB日期时间控件

    日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期...

    delphi日期时间控件

    "delphi日期时间控件" 提供了一种高效的方法,允许用户同时选择日期和时间,大大增强了用户体验。这里我们将深入探讨这种控件以及与其相关的知识点。 首先,TMS Component Pack是一个强大的第三方组件库,它包含了...

    ext4 年月时间控件 年月日时间控件 年月日时分秒时间控件

    1. **EXT4时间控件**:EXTJS4是Sencha公司开发的一个富客户端JavaScript框架,它包含了大量的UI组件,其中时间控件是其一。EXT4的时间控件基于jQuery UI,提供了丰富的样式和功能,可以轻松地与后台数据进行交互。 ...

    时间控件

    6. **React、Vue 或 Angular 时间组件**: 在现代前端框架中,有专门的日期和时间组件,如React的`react-datepicker`,Vue的`vuetify`的`v-date-picker`,Angular的`ng-bootstrap`的`NgbDatepicker`。这些组件通常...

    weui 时间控件含全天 上午 下午 选择

    标题中的"weui 时间控件含全天 上午 下午 选择"指的是一个基于WeUI框架设计的时间选择组件,它允许用户在全天、上午和下午之间进行选择。WeUI是中国微信团队设计的一套符合微信视觉风格的前端框架,适用于移动端网页...

    上下午显示时间控件

    "上下午显示时间控件"是一个针对此类需求的解决方案,它基于jQuery Mobile的日期插件进行扩展,专门设计用于显示和选择上午或下午的时间段。这个控件特别适合于网页时间输入、手机页面的时间选择,以及在手机网页...

    easyUI时间控件使用

    在本文中,我们将深入探讨如何在EasyUI框架中有效地使用时间控件,以及如何解决时间格式化的问题。EasyUI是一个基于jQuery的轻量级前端开发框架,它提供了一系列丰富的组件,帮助开发者快速构建用户界面。时间控件是...

    可选择秒针的 bootstrap时间控件 精确选择到秒

    现有的bootstrap时间控件最小精度只能选择到分钟,秒针是随机生成的。如果应用在时间精度要求很高的系统里,因为随机生成不可控制秒值将会达不到需求。之前做一个公安项目的时候就遇到这一情况。为此改造了原有时间...

Global site tag (gtag.js) - Google Analytics