亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dateselecter.java

?? 此文檔針對開發人員和測試人員。第二章對軟件進行了全面的描述。第三章對接口進行了分析。第四章對軟件實現的功能進行概述。第五章對軟件后續開發實現提出的要求。第六章提出其他一些在軟件開發過程中需要注意的問題
?? JAVA
字號:
package com.ciash.common.gui;

import java.awt.Rectangle;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Calendar;

import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * 一個日期選擇控件,可以選擇指定的年月日,并可以返回一個Calendar實例
 * <p>
 * 注意:當選擇的任一數值為--時,Calendar實例將返回null
 */

public class DateSelecter extends JPanel {

	private static final long serialVersionUID = -5110694109466038061L;

	private JComboBox year = new JComboBox();

	private JComboBox month = new JComboBox();

	private JComboBox day = new JComboBox();

	private JLabel yearLabel = new JLabel();

	private JLabel monthLabel = new JLabel();

	private JLabel dayLabel = new JLabel();

	Calendar date = Calendar.getInstance();

	private final static String NULL_ITEM = "--";

	private boolean isEditable = true;

	public DateSelecter() {
		Calendar date = Calendar.getInstance();
		jbInit();
		int y = date.get(Calendar.YEAR) - 49;
		int c = 100;
		if (y >= 0 && c >= 1) {
			resetYearComponent(y, c);
			resetMonthComponent();
			resetDayComponent(getDaysOfMonth(c, 12));
			setSelect(0);
		}
	}

	public DateSelecter(int baseYear, int years) {
		jbInit();
		if (baseYear >= 0 && years >= 1) {
			resetYearComponent(baseYear, years);
			resetMonthComponent();
			resetDayComponent(getDaysOfMonth(baseYear, 12));
			setSelect(0);
		}
	}

	private void jbInit() {
		yearLabel.setText(ChangeListener.YEAR);
		yearLabel.setBounds(new Rectangle(92, 2, 24, 21));
		monthLabel.setText(ChangeListener.MONTH);
		monthLabel.setBounds(new Rectangle(176, 2, 21, 21));
		dayLabel.setText(ChangeListener.DAY);
		dayLabel.setBounds(new Rectangle(253, 2, 21, 21));
		this.setLayout(null);
		this.setOpaque(true);
		day.setBounds(new Rectangle(197, 0, 56, 26));
		month.setBounds(new Rectangle(116, 0, 60, 26));
		year.setBounds(new Rectangle(0, 1, 92, 25));
		this.add(year, null);
		this.add(yearLabel, null);
		this.add(month, null);
		this.add(monthLabel, null);
		this.add(day, null);
		this.add(dayLabel, null);
		ChangeListener listener = new ChangeListener();
		year.addItemListener(listener);
		month.addItemListener(listener);
		day.addItemListener(listener);
	}

	public void setCalendar(Calendar date) {
		this.date = date;
		if (date != null) {
			String y = Integer.toString(date.get(Calendar.YEAR));
			String m = Integer.toString(date.get(Calendar.MONTH) + 1);
			String d = Integer.toString(date.get(Calendar.DATE));
			year.setSelectedItem(y);
			month.setSelectedItem(m);
			day.setSelectedItem(d);
		} else {
			year.setSelectedItem(NULL_ITEM);
			month.setSelectedItem(NULL_ITEM);
			day.setSelectedItem(NULL_ITEM);
		}
	}

	public Calendar getCalendar() {
		if (date == null) {
			return null;
		}
		return (Calendar) date.clone();
	}

	private void setDate(int y, int m, int d) {
		if (y == -1 || m == -1 || d == -1) {
			date = null;
		} else {
			date = Calendar.getInstance();
			date.set(y, m, d);
		}
	}

	private void resetYearComponent(int baseYear, int years) {
		year.addItem(NULL_ITEM);
		for (int i = 0; i < years; i++) {
			year.addItem((i + baseYear) + "");
		}
	}

	private void resetMonthComponent() {
		month.removeAllItems();
		month.addItem(NULL_ITEM);
		for (int i = 1; i <= 12; i++) {
			month.addItem(i + "");
		}
	}

	private void resetDayComponent(int date) {
		int index = day.getSelectedIndex();
		day.removeAllItems();
		day.addItem(NULL_ITEM);
		for (int i = 1; i <= date; i++) {
			day.addItem(i + "");
		}
		setSelect(index);
	}

	private void setSelect(int index) {
		if (index >= day.getItemCount()) {
			day.setSelectedIndex(day.getItemCount() - 1);
		} else {
			day.setSelectedIndex(index);
		}
	}

	private class ChangeListener
	implements ItemListener {

		public final static String YEAR = "年";

		public final static String MONTH = "月";

		public final static String DAY = "日";

		public void itemStateChanged(ItemEvent e) {
			try {
				setDay(e);
			} catch (NumberFormatException ex) {
				setDate(-1, -1, -1);
				return;
			}
		}

		private void setDay(ItemEvent e) throws NumberFormatException {
			int y = Integer.parseInt(year.getSelectedItem().toString());
			int m = Integer.parseInt(month.getSelectedItem().toString());
			int d = getDaysOfMonth(y, m);
			if (!e.getSource().equals(day)) {
				day.removeItemListener(this);
				resetDayComponent(d);
				day.addItemListener(this);
			}
			d = Integer.parseInt(day.getSelectedItem().toString());
			setDate(y, m, d);
		}
	}

	private static int getDaysOfMonth(int year, int month) {
		switch (month) {
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			return 31;
		case 2:
			return lanurDays(year);
		case 4:
		case 6:
		case 9:
		case 11:
			return 30;
		default:
			return -1;
		}
	}

	private static int lanurDays(int year) {
		if (year % 100 == 0 && year % 400 == 0 || year % 4 == 0)
			return 29;
		else
			return 28;
	}

	public void setEditable(boolean isEditable) {
		this.isEditable = isEditable;
		year.setEnabled(isEditable);
		month.setEnabled(isEditable);
		day.setEnabled(isEditable);
	}

	public boolean isEditable() {
		return isEditable;
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本伊人精品一区二区三区观看方式| 亚洲图片有声小说| 欧美一级免费观看| 精品视频免费在线| 欧美日韩国产不卡| 宅男噜噜噜66一区二区66| 欧美性大战久久久久久久| 在线观看成人免费视频| 欧美网站大全在线观看| 欧美日韩精品一区二区三区蜜桃 | 不卡视频在线观看| 99视频超级精品| 色婷婷久久一区二区三区麻豆| 91福利在线观看| 欧美日本视频在线| 日韩精品一区二区在线| 国产色一区二区| 18欧美乱大交hd1984| 亚洲韩国精品一区| 久久66热偷产精品| 福利一区福利二区| 欧美综合一区二区三区| 日韩一区二区三区av| 欧美高清在线一区二区| 亚洲激情图片小说视频| 免费xxxx性欧美18vr| 国产成人精品综合在线观看| 91蜜桃网址入口| 日韩视频在线你懂得| 国产精品你懂的| 日本午夜一本久久久综合| 精品一区二区三区免费| 99久久亚洲一区二区三区青草| 欧美日韩在线播放三区四区| 精品少妇一区二区| 成人欧美一区二区三区小说| 日本美女一区二区三区| 99久久国产综合精品女不卡| 91精品国产日韩91久久久久久| 国产精品伦理一区二区| 久久电影网电视剧免费观看| 91天堂素人约啪| 久久综合久色欧美综合狠狠| 久久精品人人做人人爽人人| 亚洲成人av资源| 成人h动漫精品一区二区| 日韩视频免费观看高清完整版在线观看 | 成人精品电影在线观看| 欧美喷潮久久久xxxxx| 久久久国产一区二区三区四区小说 | 国产亚洲精品超碰| 午夜久久久久久久久| 96av麻豆蜜桃一区二区| www日韩大片| 日韩精品国产欧美| 欧洲精品一区二区| 亚洲三级小视频| 成人黄色av电影| 久久久久久亚洲综合| 美女一区二区三区| 91麻豆精品国产自产在线 | 国产乱码精品一区二区三区av | 天天爽夜夜爽夜夜爽精品视频| 成人免费精品视频| 国产日韩欧美综合在线| 国产一区二区中文字幕| 日韩亚洲欧美中文三级| 日本欧美一区二区三区乱码| 欧美色图天堂网| 亚洲国产精品久久人人爱蜜臀| 91免费小视频| 中文字幕在线一区| 白白色 亚洲乱淫| 国产精品国产三级国产普通话蜜臀 | 欧美一二三在线| 蜜桃av一区二区三区电影| 欧美日韩高清在线| 免费视频一区二区| 日韩欧美久久一区| 激情成人综合网| 久久久久久久久一| 成人黄色免费短视频| 国产精品久久久久一区| 99久久精品免费看国产| 亚洲精品国产第一综合99久久| 一本久道久久综合中文字幕| 亚洲美女视频在线观看| 欧美自拍偷拍一区| 麻豆国产欧美一区二区三区| 日韩手机在线导航| 成人网页在线观看| 一区二区三区四区国产精品| 精品视频色一区| 国内精品国产成人国产三级粉色 | 日本视频中文字幕一区二区三区| 日韩一级黄色大片| 成人精品免费看| 五月天国产精品| 精品日产卡一卡二卡麻豆| 国产mv日韩mv欧美| 午夜亚洲福利老司机| 亚洲精品在线三区| 97se亚洲国产综合在线| 日本亚洲一区二区| 国产精品乱码一区二区三区软件| 91最新地址在线播放| 午夜精品久久久久久| 久久精品亚洲国产奇米99| 色天天综合久久久久综合片| 免费看欧美美女黄的网站| 国产精品免费久久| 欧美日韩一区 二区 三区 久久精品| 精品亚洲成a人| 一区二区三区在线观看欧美| 精品国一区二区三区| 色婷婷激情综合| 粉嫩在线一区二区三区视频| 亚洲国产精品一区二区www在线| 久久香蕉国产线看观看99| 在线观看一区二区精品视频| 国产自产2019最新不卡| 一级做a爱片久久| 国产午夜精品一区二区| 91精品婷婷国产综合久久性色| 不卡的av电影| 国产主播一区二区| 丝袜a∨在线一区二区三区不卡 | 在线观看欧美黄色| 成人永久aaa| 蜜臀精品久久久久久蜜臀| 亚洲精品菠萝久久久久久久| 国产亚洲一本大道中文在线| 欧美日韩夫妻久久| 欧美四级电影网| 白白色 亚洲乱淫| 成人免费毛片aaaaa**| 国产一区二区成人久久免费影院| 五月激情六月综合| 亚洲国产日韩a在线播放| 国产精品免费av| 国产日产欧美一区| 国产日韩欧美亚洲| 久久精品视频在线看| 久久久久高清精品| 久久久久久久免费视频了| 精品国产99国产精品| 日韩免费观看高清完整版| 9191国产精品| 在线电影欧美成精品| 欧美精品色一区二区三区| 欧美日产国产精品| 欧美一区二区三区思思人| 欧美一级免费观看| 日韩美女一区二区三区四区| 91精品一区二区三区久久久久久| 9191久久久久久久久久久| 欧美一区二区国产| 精品粉嫩aⅴ一区二区三区四区| 日韩手机在线导航| 国产日本欧美一区二区| 成人免费一区二区三区视频| 综合精品久久久| 亚洲线精品一区二区三区| 亚洲成人精品在线观看| 日本亚洲一区二区| 国产成人在线电影| 成人app软件下载大全免费| 色综合久久综合网欧美综合网| 在线欧美日韩国产| 欧美一区二区三区婷婷月色| 亚洲精品一区二区三区在线观看| 日本一区二区视频在线观看| 最新热久久免费视频| 亚洲成av人片一区二区三区| 蜜桃视频第一区免费观看| 丁香啪啪综合成人亚洲小说| 色94色欧美sute亚洲线路一久| 欧美视频一区二区| 久久伊人蜜桃av一区二区| 亚洲视频小说图片| 人人超碰91尤物精品国产| 成人激情电影免费在线观看| 欧美在线视频全部完| 精品国产自在久精品国产| 中文字幕制服丝袜成人av | 久久久久九九视频| 亚洲女与黑人做爰| 另类中文字幕网| 91在线高清观看| 久久这里只有精品首页| 亚洲视频香蕉人妖| 国产一区啦啦啦在线观看| 欧美日韩在线观看一区二区 | 国产精品久久久久久久久动漫| 亚洲二区在线视频| 成人精品鲁一区一区二区| 欧美一区二区三区免费在线看| 国产精品卡一卡二卡三| 激情小说亚洲一区| 69堂成人精品免费视频|