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

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

?? tabledemo.java

?? Java面向對象編程(隨書配套源代碼) 闡述了面向對象編程的思想
?? JAVA
字號:
package chapter14;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.Calendar;
import java.util.Date;
/*** 日歷類, 提供日歷功能*/
public class TableDemo extends JPanel implements ActionListener, MouseMotionListener, MouseListener
{
	final private String TITLES[] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
	final private int ROW_HEIGHT = 20;
	final private int ROW_WIDTH = 40;
	private JTable tbMain; // 表格
	private JLabel lblTitle; // 標題
	private JButton btnNextMonth; // 下個月份的按鈕
	private JButton btnPrevMonth; // 上個月的按鈕
	private JPanel pnlTop; // 頂部容器
	private int year; // 當前顯示的年份
	private int month; // 當前顯示的月份
	private int day; // 當前選擇的日期
	private int week; // 當前選擇的星期
	private int selectedX = -1;
	private int selectedY = -1;
	private int clickX = -1;
	private int clickY = -1;
	public TableDemo()
	{
		Calendar cal = Calendar.getInstance();
		cal.setTime(new Date());
		year = cal.get(Calendar.YEAR);
		month = cal.get(Calendar.MONTH)+1;
		day = cal.get(Calendar.DAY_OF_MONTH)-1;
		week = cal.get(Calendar.DAY_OF_WEEK)-1;
		pnlTop = new JPanel(new FlowLayout(FlowLayout.CENTER));
		tbMain = new JTable(7,7);
		tbMain.setPreferredSize(new Dimension(ROW_WIDTH * 7, ROW_HEIGHT * 7));
		tbMain.setRowHeight(ROW_HEIGHT);
		for(int i=0; i<TITLES.length; i++)
			tbMain.setValueAt(TITLES[i],0,i);
		tbMain.addMouseMotionListener(this);
		tbMain.addMouseListener(this);
		tbMain.setEnabled(false);
		tbMain.setCellSelectionEnabled(true);
		lblTitle = new JLabel();
		btnNextMonth = new JButton(">|");
		btnNextMonth.addActionListener(this);
		btnPrevMonth = new JButton("|<");
		btnPrevMonth.addActionListener(this);
		pnlTop.add(btnPrevMonth);
		pnlTop.add(lblTitle);
		pnlTop.add(btnNextMonth);
		setTheTitle();
		// 布局組件
		setLayout(new BorderLayout());
		add(pnlTop, BorderLayout.NORTH);
		add(tbMain, BorderLayout.CENTER);
		showMonth(); // 設置顯示當前月份
	}
	
	//取得指定年份和月份的日期數
	public int getDaysOfMonth(int year, int month)
	{
		int Days[]= {31,28,31,30,31,30,31,31,30,31,30,31};
		// 判斷是否閏年
		if( year % 400 == 0 || (year % 4 ==0 && year % 100 != 0)) // 說明是閏年
			Days[1] = 29;
		return Days[month-1];
	}

	// 取得指定月份的頭一天的星期幾
	public int getWeekOfFirstDay(int year, int month)
	{
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.YEAR, year);
		cal.set(Calendar.MONTH, month - 1);
		cal.set(Calendar.DAY_OF_MONTH, 1);
		int result = cal.get(Calendar.DAY_OF_WEEK) - 1;
		return result ;
	}

	// 設置顯示的標題
	private void setTheTitle()
	{
		String m = String.valueOf(month);
		if(m.length() ==1) m = "0"+m;
		lblTitle.setText(String.valueOf(year)+"年"+m+"月");
	}

	// 顯示月份
	private void showMonth()
	{
		for(int x=0; x<7; x++)
		for(int y=1; y<7; y++) tbMain.setValueAt("",y, x);
		int y = 1;
		int x = getWeekOfFirstDay(year, month);
		int maxDay = getDaysOfMonth(year,month);
		for(int i=0; i<maxDay; i++)
		{
			tbMain.setValueAt(new Integer(i+1),y,x);
			x ++;
			if(x>6)
			{
				x=0;
				y++;
			}
		}
		repaint();
	}

	//按鈕事件處理
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource().equals(btnNextMonth))
		{
			month++;
			if(month>12)
			{
				month = 1;
				year++;
			}
		}
		if(e.getSource().equals(btnPrevMonth))
		{
			month--;
			if(month<1)
			{
				month = 12;
				year --;
			}
		}
		setTheTitle();
		showMonth();
	}
	//繪制
	public void paint(Graphics g)
	{
		super.paint(g);
		// repaint Table First LINE
		g.fillRect(0,pnlTop.getHeight(), getWidth()-1, ROW_HEIGHT -1);
		g.setColor(Color.white);
		for(int i=0; i<7; i++)
			g.drawString((String)(tbMain.getModel().getValueAt(0,i)),i*ROW_WIDTH, pnlTop.getHeight()+ ROW_HEIGHT - 3);
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.YEAR, year);
		cal.set(Calendar.MONTH, month);
		cal.set(Calendar.DAY_OF_MONTH, day);
		int line = cal.get(Calendar.DAY_OF_WEEK_IN_MONTH) + 1;
		int x = week * tbMain.getWidth() / 7;
		int y = pnlTop.getHeight() + ROW_HEIGHT * line ;
		g.setColor(Color.black);
		g.drawRect(x+1,y+1, ROW_WIDTH-4, ROW_HEIGHT-4);
		if(selectedX>=0&&selectedY>=0&&! tbMain.getModel().getValueAt(selectedY,selectedX).equals(""))
		{
			g.setColor(Color.blue);
			g.drawRect(selectedX*ROW_WIDTH+1,(selectedY+2)*ROW_HEIGHT -1 ,ROW_WIDTH-4,ROW_HEIGHT-4);
		}
		if(clickY>=0&&clickX>=0& ! tbMain.getModel().getValueAt(clickY,clickX).equals(""))
		{
			g.setColor(Color.green);
			g.drawRect(clickX*ROW_WIDTH+1,(clickY+2)*ROW_HEIGHT -1 ,ROW_WIDTH-4,ROW_HEIGHT-4);
		}
	}
	public void mouseDragged(MouseEvent e){}
	public void mouseMoved(MouseEvent e)
	{
		if(e.getX()>0 && e.getY()<getWidth() && e.getY()> ROW_HEIGHT && e.getY()< ROW_HEIGHT * 7 )
		{
			selectedX = e.getX() / ROW_WIDTH;
			selectedY = e.getY() / ROW_HEIGHT;
			repaint();
		}
	}
	public void mouseClicked(MouseEvent e) { }
	public void mousePressed(MouseEvent e)
	{
		if(e.getX()>0 && e.getY()<getWidth() && e.getY()> ROW_HEIGHT && e.getY()< ROW_HEIGHT * 7 )
		{
			clickX = e.getX() / ROW_WIDTH;
			clickY = e.getY() / ROW_HEIGHT;
			repaint();
		}
	}
	public void mouseReleased(MouseEvent e){}
	public void mouseEntered(MouseEvent e){}
	public void mouseExited(MouseEvent e){}
/* --=[ 測試代碼 ]=-- */
	public static void main(String[] args)
	{
		JFrame frm = new JFrame();
		frm.getContentPane().setLayout(new BorderLayout());
		frm.getContentPane().add(new TableDemo());
		frm.setTitle("表格演示");
		frm.pack();
		frm.setVisible(true);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久国产一区二区三区四区小说 | 欧美一级电影网站| 日韩一级黄色片| 国产目拍亚洲精品99久久精品| 国产精品无码永久免费888| 亚洲伦在线观看| 日本亚洲免费观看| 国产成人亚洲综合a∨猫咪| jvid福利写真一区二区三区| 色婷婷综合久久久久中文一区二区 | 在线一区二区三区做爰视频网站| 色婷婷久久久综合中文字幕| 91精品国产综合久久蜜臀| 久久久久久日产精品| 亚洲天堂网中文字| 日韩国产精品久久久| 国产成人精品免费网站| 日本丶国产丶欧美色综合| 日韩欧美综合一区| 《视频一区视频二区| 日韩高清不卡在线| 成人的网站免费观看| 欧美美女一区二区三区| 国产三级一区二区| 亚洲成a人v欧美综合天堂| 狠狠色丁香久久婷婷综合_中| 91免费在线看| 亚洲精品在线网站| 夜夜嗨av一区二区三区网页| 激情六月婷婷综合| 色婷婷激情久久| 久久久久成人黄色影片| 亚洲成人免费视| 成年人午夜久久久| 日韩精品一区二区三区视频播放| 亚洲图片激情小说| 国产专区欧美精品| 欧美精品在线观看播放| 国产精品乱人伦中文| 美女诱惑一区二区| 在线观看日韩电影| 日本一区免费视频| 麻豆精品一区二区av白丝在线| 91浏览器入口在线观看| 久久综合中文字幕| 性做久久久久久免费观看| av电影在线观看一区| 精品国产一二三| 天天操天天干天天综合网| 97成人超碰视| 国产精品污网站| 激情五月婷婷综合网| 欧美一区日韩一区| 午夜视频在线观看一区二区| 91免费看片在线观看| 国产午夜精品理论片a级大结局 | 欧美人xxxx| 一区二区三区在线播| 不卡欧美aaaaa| 中文字幕+乱码+中文字幕一区| 久久成人久久爱| 欧美成人猛片aaaaaaa| 舔着乳尖日韩一区| 欧美性大战久久久久久久| 亚洲日本青草视频在线怡红院 | 国产日韩v精品一区二区| 久久福利资源站| 日韩一区二区三| 日韩av电影免费观看高清完整版在线观看| 欧美伊人久久久久久久久影院| 综合色中文字幕| bt7086福利一区国产| 中文字幕av一区二区三区高 | 精品国产一区二区亚洲人成毛片| 青青草原综合久久大伊人精品| 欧美日韩国产免费一区二区| 亚洲国产欧美另类丝袜| 91久久线看在观草草青青| 亚洲欧美aⅴ...| 一本久久综合亚洲鲁鲁五月天 | 国产精品自产自拍| 久久在线观看免费| 国产精品亚洲人在线观看| 久久久综合网站| 国产精品123| 欧美激情一区三区| 成人av高清在线| 综合久久给合久久狠狠狠97色| 99视频精品在线| 亚洲一区二区影院| 欧美一区二区三区在线观看视频| 日本不卡视频一二三区| 精品日产卡一卡二卡麻豆| 国产美女视频91| 国产精品超碰97尤物18| 色综合咪咪久久| 视频一区视频二区在线观看| 日韩免费视频一区| 国产精品一二三| 亚洲免费大片在线观看| 欧美日韩卡一卡二| 久久99精品久久久久久动态图 | 国产一区二区三区电影在线观看 | 国产综合色精品一区二区三区| 国产欧美日韩在线观看| 97久久精品人人做人人爽| 亚洲无线码一区二区三区| 欧美一级久久久| 粉嫩av亚洲一区二区图片| 亚洲精品一二三| 日韩视频一区二区三区| 国产成人综合在线| 亚洲女爱视频在线| 欧美一区二区人人喊爽| 国产激情偷乱视频一区二区三区| 亚洲精品国产视频| 日韩亚洲欧美在线| 成人av网站大全| 日韩国产精品大片| 欧美高清在线视频| 欧美日韩一级二级| 国产电影精品久久禁18| 一区二区高清在线| 久久这里都是精品| 欧美少妇xxx| 国产a级毛片一区| 香蕉影视欧美成人| 欧美国产一区视频在线观看| 欧美丝袜丝交足nylons图片| 国产综合久久久久影院| 亚洲一区二区av电影| 久久蜜桃一区二区| 欧美日韩国产综合久久 | 欧美国产成人精品| 欧美精品vⅰdeose4hd| 成人网在线播放| 麻豆国产精品官网| 日韩久久一区二区| 久久免费视频色| 欧美久久一二三四区| jizzjizzjizz欧美| 激情文学综合丁香| 舔着乳尖日韩一区| 亚洲九九爱视频| 国产亚洲成av人在线观看导航| 欧美另类videos死尸| 91免费看片在线观看| 国产一区二区精品久久| 日韩和的一区二区| 亚洲黄一区二区三区| 国产欧美日韩精品在线| 日韩欧美国产综合在线一区二区三区| 色综合色综合色综合 | 国产欧美一区二区三区沐欲 | 九九热在线视频观看这里只有精品| 亚洲乱码国产乱码精品精小说 | 国产69精品一区二区亚洲孕妇 | 日韩精品一区二区在线| 欧美三级乱人伦电影| 99久久久免费精品国产一区二区| 韩国女主播一区二区三区| 五月婷婷色综合| 亚洲精品视频免费观看| 欧美极品美女视频| 久久久噜噜噜久久人人看| 日韩一区二区免费在线电影| 欧美性xxxxx极品少妇| 99久久国产综合色|国产精品| 国产成人啪午夜精品网站男同| 久久精品久久综合| 日韩成人一区二区三区在线观看| 亚洲成人自拍偷拍| 亚洲综合激情小说| 亚洲男人的天堂在线aⅴ视频 | 色呦呦网站一区| 91亚洲国产成人精品一区二区三 | 久久这里只精品最新地址| 欧美一级午夜免费电影| 欧美另类变人与禽xxxxx| 欧美日韩视频在线观看一区二区三区 | 欧美日韩国产一级片| 在线观看日韩高清av| 色成年激情久久综合| 色悠悠亚洲一区二区| 日本韩国一区二区| 91福利视频网站| 欧美午夜理伦三级在线观看| 99re视频精品| 91国产丝袜在线播放| 色综合久久88色综合天天| 色先锋aa成人| 欧美亚洲禁片免费| 欧美日韩国产一级二级| 91精品国产欧美日韩| 欧美一卡二卡三卡| 精品国产乱码久久久久久老虎 | 国产一区二区h| 国产成人免费网站| 本田岬高潮一区二区三区| 91热门视频在线观看|