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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? datechooserjbutton.java

?? 用java 實現(xiàn)的一個任務(wù)管理器
?? JAVA
字號:
package com.fang.commom.util;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.border.LineBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class DateChooserJButton extends JButton{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private DateChooser dateChooser =null;
	private String preLabel ="" ;
	private Date selectedTime;
	
	public DateChooserJButton() {
		this(getNowDate()) ;
		}

	public DateChooserJButton(SimpleDateFormat df , String dateString) {
		this() ;
		setText(df,dateString) ;
		}

	public DateChooserJButton(Date date) {
		this("",date);
		}

	public DateChooserJButton(String preLabel , Date date) {
		if (preLabel!=null) this.preLabel = preLabel ;
		setDate(date) ;
		setBorder(null) ;
		setCursor(new Cursor(Cursor.HAND_CURSOR)) ;
		super.addActionListener( new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			if (dateChooser==null) dateChooser = new DateChooser();
			Point p = getLocationOnScreen() ;
			p.y = p.y+30 ;
		//	dateChooser.setSize(new Dimension(100,150));
			dateChooser.showDateChooser(p) ;
			
			} 
			}) ;
	}
	
	private static Date getNowDate() {
		return Calendar.getInstance().getTime() ;
		}
	
	private static SimpleDateFormat getDefaultDateFormat() {
		return new SimpleDateFormat("yyyy年MM月dd日HH時mm分") ;
		}
	
	//覆蓋父類的方法
	public void setText(String s) {
	Date date ;
	try {
	date = getDefaultDateFormat().parse(s) ; 
	}catch (ParseException e) {
	date = getNowDate() ;
	}
	setDate(date) ;
	}
	
	public void setText(SimpleDateFormat df , String s) {
		Date date ;
		try {
		date = df.parse(s) ;
		}catch (ParseException e) {
		date = getNowDate() ;
		}
		setDate(date) ;
		}

	public void setDate(Date date) {
		super.setText(preLabel+getDefaultDateFormat().format(date));
		selectedTime=date;
		}
	
	public Date getDate() {
		String dateString = getText().substring(preLabel.length());
		try {
		return getDefaultDateFormat().parse(dateString); 
		} catch (ParseException e) {
		return getNowDate() ;
		}
		}
	
	public Date getSelectedTime(){
		return selectedTime;
	}
	
	//覆蓋父類的方法使之無效
	public void addActionListener(ActionListener listener ) {
	}

	private class DateChooser extends JPanel implements ActionListener ,ChangeListener {
		
		/**
		 * 
		 */
		private static final long serialVersionUID = 1L;
		
		
		int startYear = 1980; //默認【最小】顯示年份
		int lastYear = 2050; //默認【最大】顯示年份
		int width = 300; //界面寬度
		int height = 200; //界面高度
		
		Color backGroundColor = Color.gray; //底色
		//月歷表格配色----------------//
		Color palletTableColor = Color.white; //日歷表底色
		Color todayBackColor = Color.orange; //今天背景色
		Color weekFontColor = Color.blue; //星期文字色
		Color dateFontColor = Color.black; //日期文字色
		Color weekendFontColor = Color.red; //周末文字色

		//控制條配色------------------//
		Color controlLineColor = Color.pink; //控制條底色
		Color controlTextColor = Color.white; //控制條標簽文字色
		
		Color rbFontColor = Color.white; //RoundBox文字色
		Color rbBorderColor = Color.red; //RoundBox邊框色
		Color rbButtonColor = Color.pink; //RoundBox按鈕色
		Color rbBtFontColor = Color.red; //RoundBox按鈕文字色
		
		JDialog dialog ;
		JSpinner yearSpin ;
		JSpinner monthSpin ;
		JSpinner hourSpin ;
		JSpinner minuteSpin ;
		JButton[][] daysButton = new JButton[6][7] ;
		
		DateChooser() {

			setLayout(new BorderLayout());
			setBorder(new LineBorder(backGroundColor, 2));
			setBackground(backGroundColor);

			JPanel topYearAndMonth = createYearAndMonthPanal();
			add(topYearAndMonth,BorderLayout.NORTH);
			JPanel centerWeekAndDay = createWeekAndDayPanal();
			add(centerWeekAndDay,BorderLayout.CENTER);

			}

		private JPanel createYearAndMonthPanal(){
			
			Calendar c = getCalendar() ;
			int currentYear =c.get(Calendar.YEAR);
			int currentMonth =c.get(Calendar.MONTH)+1;
			int currentHour =c.get(Calendar.HOUR_OF_DAY);
			int currentMinute=c.get(Calendar.MINUTE);
			
			JPanel result = new JPanel();
			result.setLayout(new FlowLayout());
			result.setBackground(controlLineColor);
			
			yearSpin = new JSpinner(new SpinnerNumberModel(currentYear,startYear,lastYear,1));
			yearSpin.setPreferredSize(new Dimension(48,20)) ;
			yearSpin.setName("Year") ;
			yearSpin.setEditor(new JSpinner.NumberEditor(yearSpin, "####")) ; 
			yearSpin.addChangeListener(this) ; 
			result.add(yearSpin) ;
			
			JLabel yearLabel = new JLabel("年");
			yearLabel.setForeground(controlTextColor);
			result.add(yearLabel);
			
			monthSpin = new JSpinner(new SpinnerNumberModel(currentMonth,1,12,1));
			monthSpin.setPreferredSize(new Dimension(35,20)) ;
			monthSpin.setName("Month") ;
			monthSpin.addChangeListener(this) ; 
			result.add(monthSpin) ;

			JLabel monthLabel = new JLabel("月");
			monthLabel.setForeground(controlTextColor);
			result.add(monthLabel);

			hourSpin = new JSpinner(new SpinnerNumberModel(currentHour,0,23,1));
			hourSpin.setPreferredSize(new Dimension(35,20)) ;
			hourSpin.setName("Hour") ;
			hourSpin.addChangeListener(this) ; 
			result.add(hourSpin) ;

			JLabel hourLabel = new JLabel("時");
			hourLabel.setForeground(controlTextColor);
			result.add(hourLabel);
			
			minuteSpin=new JSpinner(new SpinnerNumberModel(currentMinute,0,59,1));
			minuteSpin.setPreferredSize(new Dimension(35,20));
			minuteSpin.setName("Minute");
			minuteSpin.addChangeListener(this);
			result.add(minuteSpin);
			
			JLabel minuteLabel=new JLabel("分");
			minuteLabel.setForeground(controlTextColor);
			result.add(minuteLabel);

			return result ;
			
		}

		private JPanel createWeekAndDayPanal() {
			String colname[] = {"日","一","二","三","四","五","六"};
			JPanel result = new JPanel();
			//設(shè)置固定字體,以免調(diào)用環(huán)境改變影響界面美觀
			result.setFont(new Font("宋體", Font.PLAIN, 12));
			result.setLayout(new GridLayout(7,7));
			result.setBackground(Color.white);
			JLabel cell ;

			for(int i=0;i<7;i++) {
			cell = new JLabel(colname[i]);
			cell.setHorizontalAlignment(JLabel.RIGHT);
			if (i==0 || i==6) cell.setForeground(weekendFontColor) ;
			else cell.setForeground(weekFontColor) ;
			result.add(cell) ;
			} 

			int actionCommandId = 0 ;
			for(int i = 0; i < 6; i++) 
			for(int j = 0; j < 7; j++) {
			JButton numberButton = new JButton();
			numberButton.setBorder(null) ; 
			numberButton.setHorizontalAlignment(SwingConstants.RIGHT);
			numberButton.setActionCommand(String.valueOf(actionCommandId)) ; 
			numberButton.addActionListener(this) ;
			numberButton.setBackground(palletTableColor);
			numberButton.setForeground(dateFontColor) ;
			if (j==0 || j==6) numberButton.setForeground(weekendFontColor) ;
			else numberButton.setForeground(dateFontColor) ;
			daysButton[i][j] = numberButton;
			result.add(numberButton) ;
			actionCommandId ++ ;
			} 

			return result; 
			}
   
		private JDialog createDialog(JDialog owner ) {
			JDialog result = new JDialog(owner,"日期時間選擇",true) ;
			result.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
			result.getContentPane().add(this,BorderLayout.CENTER) ;
			result.pack() ;
			result.setSize(width, height);
			return result ;
			}

		@SuppressWarnings("deprecation")
		void showDateChooser(Point position ) {
			JDialog owner =(JDialog)SwingUtilities.getWindowAncestor(DateChooserJButton.this) ;
			if (dialog==null || dialog.getOwner()!= owner) dialog = createDialog(owner ) ;
			dialog.setLocation(getAppropriateLocation(owner ,position ) ) ;
			flushWeekAndDay() ;
			dialog.show(); 
			}
		
		Point getAppropriateLocation(JDialog owner ,Point position ) {
			Point result = new Point(position) ;
			Point p = owner.getLocation() ;
			int offsetX = (position.x+width) - (p.x + owner.getWidth() ) ;
			int offsetY = (position.y+height) - (p.y + owner.getHeight() ) ;

			if (offsetX >0 ) {
			result.x -= offsetX ; 
			}

			if (offsetY >0 ) {
			result.y -= offsetY ; 
			}

			return result ;

			}

		private Calendar getCalendar() {
			Calendar result = Calendar.getInstance();
			result.setTime(getDate()) ;
			return result ;
			} 


			private int getSelectedYear() {
			return ((Integer)yearSpin.getValue()).intValue() ;
			} 


			private int getSelectedMonth() {
			return ((Integer)monthSpin.getValue()).intValue() ;
			} 

			private int getSelectedHour() {
			return ((Integer)hourSpin.getValue()).intValue() ;
			}
			private int getSelectedMinute() {
				return ((Integer)minuteSpin.getValue()).intValue() ;
				}
			
			private void dayColorUpdate(boolean isOldDay) {
				Calendar c = getCalendar() ;
				int day = c.get(Calendar.DAY_OF_MONTH);
				c.set(Calendar.DAY_OF_MONTH,1);
				int actionCommandId =day-2+c.get(Calendar.DAY_OF_WEEK) ;
				int i = actionCommandId/7;
				int j = actionCommandId%7;
				if (isOldDay) daysButton[i][j].setForeground(dateFontColor) ;
				else daysButton[i][j].setForeground(todayBackColor) ;
				}
			
			private void flushWeekAndDay() {
				Calendar c = getCalendar() ;
				c.set(Calendar.DAY_OF_MONTH,1);
				int maxDayNo = c.getActualMaximum(Calendar.DAY_OF_MONTH);
				int dayNo = 2 - c.get(Calendar.DAY_OF_WEEK) ;
				for(int i = 0; i < 6; i++) {
				for(int j = 0; j < 7; j++) {
				String s="" ;
				if (dayNo>=1 && dayNo<=maxDayNo ) s = String.valueOf(dayNo) ;
				daysButton[i][j].setText(s) ;
				dayNo ++ ;
				}
				} 
				dayColorUpdate(false) ;
				}
		

		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			JButton source =(JButton)e.getSource() ;
			if (source.getText().length()==0) return ;
			dayColorUpdate(true) ;
			source.setForeground(todayBackColor) ;
			int newDay = Integer.parseInt(source.getText());
			Calendar c = getCalendar() ;
			c.set(Calendar.DAY_OF_MONTH,newDay);
			setDate(c.getTime());
			
		}

		public void stateChanged(ChangeEvent e) {
			// TODO Auto-generated method stub
			JSpinner source =(JSpinner)e.getSource() ;
			Calendar c = getCalendar() ;
			if (source.getName().equals("Hour")) {
			c.set(Calendar.HOUR_OF_DAY, getSelectedHour());
			setDate(c.getTime());
			return ;
		    }
			if (source.getName().equals("Minute")) {
				c.set(Calendar.MINUTE, getSelectedMinute());
				setDate(c.getTime());
				return ;
			  }
			
			
			dayColorUpdate(true) ;

		    if (source.getName().equals("Year")) 
		    c.set(Calendar.YEAR, getSelectedYear());
		    else 
		    // (source.getName().equals("Month")) 
		    c.set(Calendar.MONTH, getSelectedMonth()-1);
		    setDate(c.getTime());
		    flushWeekAndDay() ;
	}
}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        JFrame aframe=new JFrame();
        DateChooserJButton atimeBtn=new DateChooserJButton();
        atimeBtn.setSize(new Dimension(20,30));
        
        aframe.add(atimeBtn,BorderLayout.CENTER);
        aframe.setSize(new Dimension(400,500));
        //aframe.show();
        
        
	}
}	
	

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一级二级| 久久久久国产成人精品亚洲午夜| 亚洲精品中文在线影院| 成人av网站在线观看免费| 国产欧美一区二区精品忘忧草| 韩国精品主播一区二区在线观看| 久久久久久久一区| 国产·精品毛片| 亚洲视频在线一区| 色婷婷综合中文久久一本| 亚洲一区二区三区激情| 91精品国产免费| 国产麻豆日韩欧美久久| 国产精品国产自产拍高清av | 日韩高清一区二区| 日韩一级二级三级| 国产69精品久久久久777| 综合激情成人伊人| 欧美日韩不卡在线| 国产一区二区三区国产| 亚洲品质自拍视频| 欧美一区二区三区视频免费| 国产麻豆精品在线观看| 亚洲免费大片在线观看| 日韩三级视频在线看| 丁香六月综合激情| 香蕉影视欧美成人| 国产视频911| 在线观看91精品国产麻豆| 国产精品一区二区黑丝| 亚洲一卡二卡三卡四卡五卡| 精品国产91九色蝌蚪| 色久综合一二码| 精品亚洲国内自在自线福利| 亚洲视频香蕉人妖| 精品乱码亚洲一区二区不卡| 91免费版在线看| 久久精品国产精品亚洲精品| 中文字幕一区二区三区蜜月| 欧美一级二级三级蜜桃| 91麻豆国产香蕉久久精品| 美腿丝袜亚洲色图| 亚洲综合色噜噜狠狠| 久久人人爽人人爽| 91麻豆精品国产91久久久久| eeuss鲁片一区二区三区| 九色综合狠狠综合久久| 一个色综合网站| 久久久久久影视| 日韩一卡二卡三卡国产欧美| 91蜜桃婷婷狠狠久久综合9色| 久88久久88久久久| 亚洲第一二三四区| 亚洲欧美日韩中文字幕一区二区三区 | 欧美精品一区在线观看| 欧美日韩高清在线播放| 99精品视频免费在线观看| 韩国精品主播一区二区在线观看| 亚洲国产成人高清精品| 中文字幕亚洲不卡| 久久精品免视看| 久久在线免费观看| 欧美电视剧在线观看完整版| 欧美自拍丝袜亚洲| 色综合久久88色综合天天6| 国产酒店精品激情| 国产一区久久久| 久久爱另类一区二区小说| 五月综合激情婷婷六月色窝| 亚洲曰韩产成在线| 一区二区久久久久久| 一区二区三区在线观看欧美| 中文字幕一区二| 国产精品美女视频| 久久精品夜色噜噜亚洲a∨| 精品国产免费久久| 亚洲精品一区二区三区99| 精品国产污网站| 久久久久久日产精品| 国产亚洲精品超碰| 国产日产欧美一区二区视频| 国产日韩欧美精品一区| 亚洲国产精品成人久久综合一区| 久久夜色精品国产噜噜av| 久久在线免费观看| 国产丝袜在线精品| 国产精品网友自拍| 国产精品成人一区二区三区夜夜夜 | 石原莉奈一区二区三区在线观看| 午夜精品福利久久久| 天堂一区二区在线| 日韩国产精品91| 精品系列免费在线观看| 激情文学综合网| 成人免费看视频| 色婷婷久久久亚洲一区二区三区| 日本精品裸体写真集在线观看| 色婷婷一区二区| 欧美一级片在线观看| 精品免费国产二区三区 | 国产精品久久久一本精品| 中文字幕日韩一区| 亚洲一区二区三区免费视频| 六月婷婷色综合| 91亚洲精品久久久蜜桃| 欧美视频你懂的| 精品日本一线二线三线不卡| 国产视频亚洲色图| 亚洲www啪成人一区二区麻豆| 美洲天堂一区二卡三卡四卡视频| 国产精品自产自拍| 91久久精品国产91性色tv| 欧美一区二区免费视频| 国产日韩三级在线| 午夜一区二区三区视频| 国产一区激情在线| 色美美综合视频| 精品卡一卡二卡三卡四在线| 国产精品国产三级国产专播品爱网| 一区二区三区美女视频| 国产在线精品一区二区三区不卡| 91在线porny国产在线看| 91精品国产综合久久精品app| 国产视频一区在线播放| 午夜精品一区二区三区三上悠亚| 国产在线播精品第三| 色欲综合视频天天天| 日韩亚洲欧美一区二区三区| 国产精品网友自拍| 久久99国产精品免费| 日本高清视频一区二区| 久久夜色精品国产噜噜av| 亚洲国产日产av| jizzjizzjizz欧美| 精品国产免费久久| 五月激情六月综合| 一本久久a久久精品亚洲| 久久综合视频网| 午夜精品一区二区三区免费视频 | 国产午夜精品美女毛片视频| 一区二区激情小说| 顶级嫩模精品视频在线看| 欧美一级欧美三级在线观看| 一区二区三区在线播| 成人中文字幕在线| 精品久久国产字幕高潮| 亚洲成年人影院| 一本大道av伊人久久综合| 欧美韩日一区二区三区| 激情综合网天天干| 欧美一卡2卡三卡4卡5免费| 亚洲一区二区精品视频| 97精品超碰一区二区三区| 国产日本亚洲高清| 韩国视频一区二区| 日韩欧美三级在线| 麻豆91免费观看| 911精品国产一区二区在线| 亚洲精品免费电影| av一本久道久久综合久久鬼色| 久久这里只精品最新地址| 久久国产麻豆精品| 欧美一级视频精品观看| 日韩一区精品视频| 欧美久久久一区| 亚洲成年人影院| 欧美剧情片在线观看| 亚洲成人免费av| 欧美一区二区三区婷婷月色| 日日嗨av一区二区三区四区| 欧美日韩1区2区| 日本成人在线视频网站| 日韩一区二区在线观看| 美国欧美日韩国产在线播放 | 精品999久久久| 久久99久久久久久久久久久| 日韩视频免费观看高清完整版 | 国产精品伊人色| 久久精品夜色噜噜亚洲aⅴ| 国产一区二区三区蝌蚪| 国产午夜久久久久| 成人免费视频caoporn| 中文字幕在线视频一区| 成人午夜av电影| 亚洲男人的天堂在线aⅴ视频| 色婷婷综合久色| 日韩va亚洲va欧美va久久| 精品国产网站在线观看| 成人小视频在线观看| ㊣最新国产の精品bt伙计久久| 91麻豆国产自产在线观看| 亚洲图片自拍偷拍| 日韩精品一区二区三区四区视频 | 亚洲va欧美va人人爽| 日韩视频免费观看高清完整版 | 国产色产综合色产在线视频| av在线一区二区| 亚洲123区在线观看| 2023国产一二三区日本精品2022| 成人av一区二区三区|