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

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

?? table.java

?? 利用J2me實現的移動圖書館。針對高校學生開發的一款圖書借閱軟件。
?? JAVA
字號:
/*
 * Table.java
 *
 * Created on 2006年5月23日, 上午12:21
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

package cn.edu.uestc.pandawireless.ui.table;

import javax.microedition.lcdui.*;

/**
 * <P>The <CODE>Table</CODE> class creates a grid which shows data in columns, oriented either
 * horizontally or vertically. 
 *
 * <P><CODE>Table</CODE>s may also be inserted into <CODE>ScrollPane</CODE>s. This allows 
 * <CODE>Table</CODE>s to be larger than the physical display.
 *
 * <P>Orientation is set using the <CODE>ORIENT_VERTICAL</CODE> (which places columns along the
 * <B>X</B> axis), or <CODE>ORIENT_HORIZONTAL</CODE> (which places columns along the <B>Y</B>
 * axis.
 *
 * @see TableModel
 * @author Darryl L. Pierce,pandaxiaoxi
 * @version $Revision: 2.0 $
 */
public class Table extends Canvas implements Scrollable {
    public static final int ORIENT_VERTICAL   = 0;
    public static final int ORIENT_HORIZONTAL = 1;

    private TableModel model         = null;
    private Font       font           = Font.getDefaultFont();
    private int        columnWidth    = 85;
    private int        orientation    = ORIENT_VERTICAL;   //每列豎直顯示
    private boolean    separatorLines = true;
    private int        currentRow = 1;

    /**
     * <P>Creates an instance with the associated model.
     */
    public Table(TableModel model) {
	if(null == model) {
	    throw new IllegalArgumentException("Cannot pass a null model to a table");
	}

	this.model = model;
    }
    public Table(){
        
    }
    public void setTableModel(TableModel model){
        if(null == model) {
	    throw new IllegalArgumentException("Cannot pass a null model to a table");
	}
        this.model = model;
    }
//    public TableModel getModel(){
//        return this.model;
//    }
    public TableModel getTableModel(){
        return this.model;
    }
    /**
     * <P>Sets the column width
     */
    public void setColumnWidth(int width) {
	if(0 < width) {
	    columnWidth = width;
	}
    }

    /**
     * <P>Returns the column width.
     */
    public int getColumnWidth() {
	return columnWidth;
    }

    /**
     * <P>Sets the table orientation.
     *
     * @param orient either <CODE>ORIENT_VERTICAL</CODE> or <CODE>ORIENT_HORIZONTAL</CODE>
     */
    public void setOrientation(int orient) {
	switch(orient) {
	case ORIENT_VERTICAL:
	case ORIENT_HORIZONTAL:
	    orientation = orient;
	    break;
	default:
	    System.out.println("Invalid orientation!");
	    break;
	}
    }

    /**
     * <P>Returns the table orientation.
     */
    public int getOrientation() {
	return orientation;
    }
    
    /**
     * <P>Toggles whether separator lines are used between rows and between columns.
     */
    public void setSeparatorLines(boolean sep) {
	separatorLines = sep;
    }

    /**
     * <P>Returns whether separator lines are used.
     */
    public boolean getSeparatorLines() {
	return separatorLines;
    }

    public void paint(Graphics g) {
	int width = getFullWidth(), height = getFullHeight();

	// clear the background
	g.setColor(255,255,255);
	g.fillRect(0,0,width,height);
	g.setColor(0,0,0);

	// draw the border for the table
	g.drawRect(0,0,width,height);
        
	if(separatorLines) {
	    int vbars = 0;
	    int hbars = 0;

	    // determine how many vertical and horizontal bars to draw
	    switch(orientation) {
	    case ORIENT_VERTICAL:
		vbars = model.getColumnCount();
		hbars = model.getRowCount();
		if(model.hasColumnHeaders()) hbars++;
		break;

	    case ORIENT_HORIZONTAL:
		vbars = model.getRowCount();
		hbars = model.getColumnCount();
		if(model.hasColumnHeaders()) vbars++;
		break;
	    }
            boolean flag = false;
            
	    // draw horizontal row with different color
	    for(int index = 0;index < hbars;index++) {
		int y = index * getVerticalSpacing();
		if(index == 0){
                    g.setColor(152, 152, 152);
                    g.fillRect(0,y, width-1,getVerticalSpacing());
                    continue;
                }
                    
                if(flag){
                    g.setColor(215,215,215);
                    flag = false;
                }else{
                    g.setColor(255,255,255);
                    flag = true;
                }
                g.fillRect(0,y, width-1,getVerticalSpacing());
            }
            g.setColor(70,95,182);
            if(currentRow > 0)
                g.fillRect(0,currentRow*getVerticalSpacing(), width-1,getVerticalSpacing());
            g.setColor(0,0,0);   
            // draw horizontal bars
	    for(int index = 0;index < hbars;index++) {
		int y = index * getVerticalSpacing();
		g.drawLine(0,y,width - 1,y);
                
            }
             // draw vertical bars
	    for(int index = 0;index < vbars;index++) {
		//int x = index * getHorizontalSpacing();
                int x = index * columnWidth;
		g.drawLine(x,0,x,height - 1);
                
	    }
            
	}
        
	int rowOffset = 0; // used to flag whether headers are displayed

	// if using column headers, let's show them first
	if(model.hasColumnHeaders()) {
	    for(int col = 0;col < model.getColumnCount();col++) {
		// the row should be -1 for this call 
		drawTableCell(g,0,col,model.getColumnHeaderText(col));
	    }
	    // set the row offset
	    rowOffset = 1;
	}
        
        
	// now draw each element of the table
	for(int row = 0;row < model.getRowCount();row++) {
	    for(int col = 0;col < model.getColumnCount();col++) {
		String value = model.getValueAt(row,col);
		// now use the rowOffset to adjust if column headers were used
		drawTableCell(g,row + rowOffset,col,value);
	    }
	}
        
    }

    private void drawTableCell(Graphics g,int row,int col,String value) {
	int valueSize = columnWidth - 4; // to make sure it fits in a column space
	if(0 < valueSize) {
	    while(valueSize < font.stringWidth(value)) {
		value = value.substring(0,value.length() - 1);
		// if the string is now empty, just exit... we can't display it...
		if(0 == value.length()) {
		    return;
		}
	    }

	    int x = getXFor(row,col) + 1;
	    int y = getYFor(row,col) + 2;
	    
	    g.drawString(value,x,y,Graphics.LEFT | Graphics.TOP);
	}
    }



    private int getXFor(int row,int col) {
	if(ORIENT_VERTICAL == orientation) {
	    return col * getHorizontalSpacing();
	} else {
	    return row * getHorizontalSpacing();
	}
    }

    private int getYFor(int row,int col) {
	if(ORIENT_VERTICAL == orientation) {
	    return row * getVerticalSpacing();
	} else {
	    return col * getVerticalSpacing();
	}
    }

    private int getVerticalSpacing() {
	return font.getHeight() + 3; // font height + 1 line above + 1 line below + 1 line for separator
    }

    private int getHorizontalSpacing() {
	int rightBorder = getFullWidth() - 1;

	if(ORIENT_VERTICAL == orientation) {
	    return rightBorder / model.getColumnCount();
	} else {
	    return rightBorder / model.getRowCount();
	}
    }

    // Scrollable interface

    public int getFullWidth() {
	int count = 0;
	if(ORIENT_VERTICAL == orientation) {
	    count = model.getColumnCount();
	} else {
	    count = model.getRowCount();
	    if(model.hasColumnHeaders()) count++;
	}
	return (count * columnWidth) + 1;
    }

    public int getFullHeight() {
	int count = 0;

	if(ORIENT_VERTICAL == orientation) {
	    count = model.getRowCount();
	    if(model.hasColumnHeaders()) count++;
	} else {
	    count = model.getColumnCount();
	}

	return (getVerticalSpacing() * count) + 1;
    }

    public int getVerticalScrollAmount() {
	return getVerticalSpacing();
    }

    public int getHorizontalScrollAmount() {
	return getHorizontalSpacing();
    }

    public void render(Graphics g) {
	paint(g);
    }
    public void setCurrentRow(int row){
        this.currentRow = row;
    }
    public int getCurrentRow(){
        return this.currentRow;
    }
    public int getTotalDisplayRow(){
        return getHeight()/getVerticalSpacing()-1;
        //return 10;
    }
    public int getTotalRow(){
        return model.getRowCount();
    }
    public int getCurrentRowY(){
        return currentRow*getVerticalSpacing();
    }
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久久久| 亚洲精品五月天| 日本欧美大码aⅴ在线播放| 欧美色图在线观看| 欧美草草影院在线视频| 欧美系列亚洲系列| 日本一区二区三级电影在线观看 | 婷婷一区二区三区| 99久久国产免费看| 国产日韩精品一区| 国产麻豆精品95视频| 精品欧美一区二区久久| 青青青伊人色综合久久| 欧美日韩精品一区二区天天拍小说 | 国产成人免费9x9x人网站视频| 91精品国产综合久久香蕉的特点 | 国产成人亚洲综合a∨婷婷| 91久久精品一区二区三| 热久久国产精品| 一本久久综合亚洲鲁鲁五月天| 中文字幕不卡一区| 不卡一区二区在线| 日韩美女视频一区| 91在线视频网址| 亚洲精品一二三| 欧美日韩免费在线视频| 日韩精品亚洲专区| 91精品麻豆日日躁夜夜躁| 日韩制服丝袜先锋影音| 日韩欧美在线一区二区三区| 久久精品国产亚洲a| 日本一区二区三区免费乱视频 | 欧美亚洲动漫精品| 日本va欧美va欧美va精品| 久久品道一品道久久精品| 国产91色综合久久免费分享| 亚洲人成网站精品片在线观看| 91久久免费观看| 狠狠狠色丁香婷婷综合激情| 日本一区二区三区国色天香 | 久久伊人中文字幕| 99久久精品免费| 日本视频在线一区| 国产日韩三级在线| 欧美一区二区福利在线| 国产乱人伦偷精品视频免下载| 亚洲免费在线看| 久久精品一区二区三区不卡| 91捆绑美女网站| 国产精品影视在线| 亚洲h动漫在线| 1000精品久久久久久久久| 精品黑人一区二区三区久久| 91视频精品在这里| 国产精品亚洲人在线观看| 亚洲高清在线视频| 亚洲日本va午夜在线影院| 日韩写真欧美这视频| 91激情五月电影| 99国内精品久久| 成人午夜视频网站| 韩国av一区二区| 极品少妇一区二区| 日av在线不卡| 日本中文在线一区| 偷拍与自拍一区| 亚洲一卡二卡三卡四卡| 樱花影视一区二区| 国产精品乱人伦中文| 国产清纯美女被跳蛋高潮一区二区久久w | 久久精品夜色噜噜亚洲aⅴ| 在线播放日韩导航| 欧美一区二区观看视频| 91精品黄色片免费大全| 欧美一区二区女人| 精品国产乱码久久久久久久久 | 91无套直看片红桃| 91在线观看一区二区| 色综合久久66| 在线观看国产日韩| 欧美在线视频全部完| 欧美午夜电影网| 欧美视频在线一区二区三区 | 在线观看亚洲成人| 777色狠狠一区二区三区| 欧美一区二区在线免费播放 | 亚洲乱码国产乱码精品精98午夜| 亚洲欧洲一区二区在线播放| 一区二区三区精品久久久| 一区二区三区四区精品在线视频| 一区二区三区四区在线免费观看 | 色狠狠色噜噜噜综合网| 色8久久人人97超碰香蕉987| 欧美日韩国产综合一区二区| 日韩一区二区三区视频| 久久精品日韩一区二区三区| 国产精品久久影院| 日韩精品三区四区| 成人免费毛片aaaaa**| 欧美日韩情趣电影| 国产精品区一区二区三| 亚洲成在人线免费| 不卡一卡二卡三乱码免费网站| 在线亚洲人成电影网站色www| 精品国产乱码久久久久久影片| 中文一区在线播放| 日韩成人一区二区| 在线观看亚洲a| 欧美高清在线视频| 天天影视网天天综合色在线播放| 风间由美性色一区二区三区| 欧美日本在线播放| 亚洲精品伦理在线| 粉嫩久久99精品久久久久久夜 | 亚洲成人激情综合网| 福利视频网站一区二区三区| 日韩欧美色电影| 午夜视频一区在线观看| 中文字幕二三区不卡| 精品久久久久99| 精品国产免费一区二区三区四区| 亚洲六月丁香色婷婷综合久久 | 国产精品国产三级国产普通话99| 奇米色一区二区| 欧美一区二区三区电影| 亚洲精品免费看| 色综合久久中文综合久久97| 亚洲国产成人自拍| 国产91丝袜在线18| 日本一区二区三区免费乱视频| 国产精品亚洲视频| 国产精品欧美极品| 成人激情动漫在线观看| 国产精品免费av| 成人高清视频免费观看| 亚洲国产精华液网站w | 国产激情一区二区三区四区| 日韩欧美一区在线观看| 九九热在线视频观看这里只有精品| 欧美精品一二三| 蜜臀a∨国产成人精品| 精品三级在线看| 国产成人在线看| 国产精品久久久久天堂| 91片在线免费观看| **性色生活片久久毛片| 欧美日韩高清一区| 国产在线视视频有精品| 久久午夜免费电影| 97久久精品人人澡人人爽| 亚洲一区影音先锋| 久久无码av三级| 色94色欧美sute亚洲线路一ni | 99久久婷婷国产| 日本欧美大码aⅴ在线播放| 久久嫩草精品久久久精品一| 9l国产精品久久久久麻豆| 日韩中文字幕麻豆| 国产精品三级视频| 日韩欧美国产系列| 成人三级在线视频| 三级亚洲高清视频| 国产精品久久久久影院色老大| 欧美一a一片一级一片| 福利视频网站一区二区三区| 性欧美大战久久久久久久久| 欧美国产日韩精品免费观看| 欧美日韩中字一区| 91在线你懂得| 懂色av中文字幕一区二区三区| 亚洲午夜激情av| 中文字幕日本乱码精品影院| 日韩午夜激情视频| 欧美日韩在线播| 欧美唯美清纯偷拍| 91网站最新地址| 9l国产精品久久久久麻豆| 国产精品 欧美精品| 极品美女销魂一区二区三区免费| 亚洲成av人影院在线观看网| 日韩理论在线观看| 欧美国产在线观看| 久久久久9999亚洲精品| 欧美一区二区精品| 欧美一三区三区四区免费在线看| 欧美性受xxxx黑人xyx性爽| 一本一本久久a久久精品综合麻豆| 成人免费视频视频| a亚洲天堂av| 在线亚洲免费视频| 日本伦理一区二区| 欧美性生活影院| 欧美日本在线视频| 欧美va天堂va视频va在线| 91精品国产欧美一区二区18| 欧美一区二区三区免费大片 | 美国av一区二区| 久久99久久久久| 国产传媒一区在线| av网站免费线看精品|