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

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

?? tablesorter.java

?? 打印管理程序,測試完全通過.windows開發環境.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
        return tableModel.getColumnClass(column);
    }

    public boolean isCellEditable(int row, int column) {
        return tableModel.isCellEditable(modelIndex(row), column);
    }

    public Object getValueAt(int row, int column) {
        return tableModel.getValueAt(modelIndex(row), column);
    }

    public void setValueAt(Object aValue, int row, int column) {
        tableModel.setValueAt(aValue, modelIndex(row), column);
    }

    // Helper classes
    
    private class Row implements Comparable {
        private int modelIndex;

        public Row(int index) {
            this.modelIndex = index;
        }

        public int compareTo(Object o) {
            int row1 = modelIndex;
            int row2 = ((Row) o).modelIndex;

            for (Iterator it = sortingColumns.iterator(); it.hasNext();) {
                Directive directive = (Directive) it.next();
                int column = directive.column;
                Object o1 = tableModel.getValueAt(row1, column);
                Object o2 = tableModel.getValueAt(row2, column);

                int comparison = 0;
                // Define null less than everything, except null.
                if (o1 == null && o2 == null) {
                    comparison = 0;
                } else if (o1 == null) {
                    comparison = -1;
                } else if (o2 == null) {
                    comparison = 1;
                } else {
                    comparison = getComparator(column).compare(o1, o2);
                }
                if (comparison != 0) {
                    return directive.direction == DESCENDING ? -comparison : comparison;
                }
            }
            return 0;
        }
    }

    private class TableModelHandler implements TableModelListener {
        public void tableChanged(TableModelEvent e) {
            // If we're not sorting by anything, just pass the event along.             
            if (!isSorting()) {
                clearSortingState();
                fireTableChanged(e);
                return;
            }
                
            // If the table structure has changed, cancel the sorting; the             
            // sorting columns may have been either moved or deleted from             
            // the model. 
            if (e.getFirstRow() == TableModelEvent.HEADER_ROW) {
                cancelSorting();
                fireTableChanged(e);
                return;
            }

            // We can map a cell event through to the view without widening             
            // when the following conditions apply: 
            // 
            // a) all the changes are on one row (e.getFirstRow() == e.getLastRow()) and, 
            // b) all the changes are in one column (column != TableModelEvent.ALL_COLUMNS) and,
            // c) we are not sorting on that column (getSortingStatus(column) == NOT_SORTED) and, 
            // d) a reverse lookup will not trigger a sort (modelToView != null)
            //
            // Note: INSERT and DELETE events fail this test as they have column == ALL_COLUMNS.
            // 
            // The last check, for (modelToView != null) is to see if modelToView 
            // is already allocated. If we don't do this check; sorting can become 
            // a performance bottleneck for applications where cells  
            // change rapidly in different parts of the table. If cells 
            // change alternately in the sorting column and then outside of             
            // it this class can end up re-sorting on alternate cell updates - 
            // which can be a performance problem for large tables. The last 
            // clause avoids this problem. 
            int column = e.getColumn();
            if (e.getFirstRow() == e.getLastRow()
                    && column != TableModelEvent.ALL_COLUMNS
                    && getSortingStatus(column) == NOT_SORTED
                    && modelToView != null) {
                int viewIndex = getModelToView()[e.getFirstRow()];
                fireTableChanged(new TableModelEvent(TableSorter.this, 
                                                     viewIndex, viewIndex, 
                                                     column, e.getType()));
                return;
            }

            // Something has happened to the data that may have invalidated the row order. 
            clearSortingState();
            fireTableDataChanged();
            return;
        }
    }

    private class MouseHandler extends MouseAdapter {
        public void mouseClicked(MouseEvent e) {
            JTableHeader h = (JTableHeader) e.getSource();
            TableColumnModel columnModel = h.getColumnModel();
            int viewColumn = columnModel.getColumnIndexAtX(e.getX());
            int column = columnModel.getColumn(viewColumn).getModelIndex();
            if (column != -1) {
                int status = getSortingStatus(column);
                if (!e.isControlDown()) {
                    cancelSorting();
                }
                // Cycle the sorting states through {NOT_SORTED, ASCENDING, DESCENDING} or 
                // {NOT_SORTED, DESCENDING, ASCENDING} depending on whether shift is pressed. 
                status = status + (e.isShiftDown() ? -1 : 1);
                status = (status + 4) % 3 - 1; // signed mod, returning {-1, 0, 1}
                setSortingStatus(column, status);
            }
        }
    }

    private static class Arrow implements Icon {
        private boolean descending;
        private int size;
///        private int priority;

        public Arrow(boolean descending, int size, int priority) {
            this.descending = descending;
            this.size = size;
///            this.priority = priority;
        }

        public void paintIcon(Component c, Graphics g, int x, int y) {
	     	Color color = c.getForeground();
	     	if (color == null)
	     		color = Color.gray.darker();
            
            g.setColor(color);
            g.translate(x, y);
            
            int	dx = size / 8;
            int	dy = (c.getHeight() - size) / 2 - size / 8;

            if (!descending) {
				g.drawLine(dx, dy + 5, dx, dy + 5);
				g.drawLine(dx + 1, dy + 5, dx + 1, dy + 3);
				g.drawLine(dx + 2, dy + 3, dx + 2, dy + 1);
				g.drawLine(dx + 3, dy + 1, dx + 3, dy);
				g.setColor(c.getBackground().brighter());
				g.drawLine(dx, dy + 6, dx + 7, dy + 6);
				g.drawLine(dx + 4, dy, dx + 4, dy + 1);
				g.drawLine(dx + 5, dy + 1, dx + 5, dy + 3);
				g.drawLine(dx + 6, dy + 3, dx + 6, dy + 5);
				g.drawLine(dx + 7, dy + 5, dx + 7, dy + 6);
				g.setColor(c.getBackground());
				g.drawLine(dx + 3, dy + 2, dx + 4, dy + 2);
				g.drawLine(dx + 3, dy + 3, dx + 4, dy + 3);
				g.drawLine(dx + 2, dy + 4, dx + 5, dy + 4);
				g.drawLine(dx + 2, dy + 5, dx + 5, dy + 5);
            } else {
        		g.drawLine(dx, dy, dx + 8 - 1, dy);
        		g.drawLine(dx, dy + 1, dx, dy + 1);
        		g.drawLine(dx + 1, dy + 1, dx + 1, dy + 3);
        		g.drawLine(dx + 2, dy + 3, dx + 2, dy + 5);
        		g.drawLine(dx + 3, dy + 5, dx + 3, dy + 6);
        		g.setColor(c.getBackground().brighter());
				g.drawLine(dx + 4, dy + 5, dx + 4, dy + 6);
				g.drawLine(dx + 5, dy + 3, dx + 5, dy + 5);
				g.drawLine(dx + 6, dy + 1, dx + 6, dy + 3);
				g.drawLine(dx + 7, dy + 1, dx + 7, dy + 1);
				g.setColor(c.getBackground());
				g.drawLine(dx + 2, dy + 1, dx + 5, dy + 1);
				g.drawLine(dx + 2, dy + 2, dx + 5, dy + 2);
				g.drawLine(dx + 3, dy + 3, dx + 4, dy + 3);
				g.drawLine(dx + 3, dy + 4, dx + 4, dy + 4);	
            }
            
            g.translate(-x, -y);
        }

        public int getIconWidth() {
            return size;
        }

        public int getIconHeight() {
            return size;
        }
    }

    private class SortableHeaderRenderer implements TableCellRenderer {
        private TableCellRenderer tableCellRenderer;

        public SortableHeaderRenderer(TableCellRenderer tableCellRenderer) {
            this.tableCellRenderer = tableCellRenderer;
        }

        public Component getTableCellRendererComponent(JTable table, 
                                                       Object value,
                                                       boolean isSelected, 
                                                       boolean hasFocus,
                                                       int row, 
                                                       int column) {
            Component c = tableCellRenderer.getTableCellRendererComponent(table, 
                    value, isSelected, hasFocus, row, column);
            if (c instanceof JLabel) {
                JLabel l = (JLabel) c;
                l.setHorizontalTextPosition(JLabel.LEFT);
                int modelColumn = table.convertColumnIndexToModel(column);
                l.setIcon(getHeaderRendererIcon(modelColumn, l.getFont().getSize()));
            }
            return c;
        }
    }

    private static class Directive {
        private int column;
        private int direction;

        public Directive(int column, int direction) {
            this.column = column;
            this.direction = direction;
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费视频网站| 石原莉奈在线亚洲二区| 日韩一区二区三区视频在线| 一本大道久久a久久精品综合| 免费成人在线观看视频| 天天综合天天做天天综合| 亚洲国产一区视频| 天天做天天摸天天爽国产一区 | 欧美一级专区免费大片| 欧美日韩精品免费观看视频| 欧美日本一区二区三区| 884aa四虎影成人精品一区| 欧美日韩aaaaa| 精品久久人人做人人爱| 国产欧美一区二区三区在线老狼| 久久精品这里都是精品| 国产精品久久久久久久久免费相片| 国产精品久久久久久久久免费相片| 亚洲欧美另类在线| 亚洲成人一二三| 理论片日本一区| 丰满少妇久久久久久久| 日本道免费精品一区二区三区| 欧美羞羞免费网站| 精品免费国产二区三区| 亚洲天堂精品视频| 午夜精品久久久久影视| 国产一区二区在线视频| 成人美女视频在线观看18| 欧美亚洲高清一区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 一区二区三区在线播放| 日本成人在线视频网站| 国产一区二区三区在线观看免费 | 国产性色一区二区| 亚洲免费观看高清| 日韩av网站免费在线| 国产电影一区二区三区| 色噜噜狠狠成人网p站| 日韩欧美视频一区| 亚洲人妖av一区二区| 美女一区二区三区在线观看| av一二三不卡影片| 日韩一级黄色大片| 一区二区三区久久久| 国产真实乱偷精品视频免| 在线亚洲人成电影网站色www| 日韩免费看的电影| 亚洲精品第一国产综合野| 精品一区二区三区在线观看| 欧美制服丝袜第一页| 国产欧美精品区一区二区三区| 偷拍自拍另类欧美| 91蝌蚪porny| 国产精品毛片大码女人| 久久99精品视频| 欧美日韩视频第一区| 综合电影一区二区三区| 国产激情偷乱视频一区二区三区| 欧美人狂配大交3d怪物一区| 亚洲色图色小说| 成人动漫视频在线| 久久久久久一二三区| 美女国产一区二区三区| 欧美日韩国产综合久久| 亚洲综合小说图片| 色诱亚洲精品久久久久久| 中文字幕不卡在线播放| 国产成人在线影院| 国产亚洲精久久久久久| 国产激情一区二区三区四区 | 99精品国产视频| 欧美精品一区二区三区四区 | 91视视频在线观看入口直接观看www | 日韩精品国产欧美| 51精品国自产在线| 日韩精品免费视频人成| 7777精品伊人久久久大香线蕉完整版| 亚洲女子a中天字幕| 色94色欧美sute亚洲线路一ni| 中文字幕一区二区三区不卡| 成人午夜激情在线| 国产精品福利一区| 91福利区一区二区三区| 一二三区精品视频| 91麻豆精品国产91久久久使用方法| 亚洲曰韩产成在线| 91精品国产日韩91久久久久久| 免费观看一级欧美片| 久久久久久久一区| 丁香天五香天堂综合| 中文一区二区完整视频在线观看 | 日韩精品色哟哟| 久久综合九色综合欧美98| 国产盗摄女厕一区二区三区| 成人欧美一区二区三区1314| 在线免费观看日本欧美| 视频一区在线视频| 久久久天堂av| 91老师片黄在线观看| 青青青伊人色综合久久| 国产亚洲短视频| 精品视频1区2区3区| 捆绑调教一区二区三区| 欧美国产精品一区二区三区| 日本道精品一区二区三区| 蜜桃一区二区三区在线| 国产精品美女久久久久高潮| 欧美精品久久一区二区三区| 国产综合久久久久久久久久久久| 成人免费在线观看入口| 日韩欧美一级二级| 成人av影院在线| 捆绑紧缚一区二区三区视频| 国产精品久久影院| 欧美一区二区大片| 91在线小视频| 国产一区二区三区四区五区入口| 亚洲嫩草精品久久| 欧美精品一区二区久久久| 色丁香久综合在线久综合在线观看| 精品亚洲免费视频| 亚洲尤物在线视频观看| 国产精品福利一区| 久久久亚洲国产美女国产盗摄 | 久久精工是国产品牌吗| 亚洲少妇中出一区| 国产精品视频麻豆| 日韩欧美中文字幕公布| 色成年激情久久综合| 国产高清精品网站| 麻豆国产精品777777在线| 亚洲在线一区二区三区| 亚洲视频在线观看一区| 久久亚洲捆绑美女| 欧美不卡一区二区三区| 欧美色中文字幕| 在线精品视频免费观看| 成人激情av网| 大陆成人av片| 国产成人精品免费在线| 韩国欧美国产一区| 捆绑调教一区二区三区| 日韩av一二三| 久久精品久久99精品久久| 午夜激情一区二区| 亚洲午夜精品久久久久久久久| 亚洲美女免费在线| 亚洲欧美日韩电影| 亚洲免费毛片网站| 亚洲一区二区视频| 一卡二卡三卡日韩欧美| 亚洲成人av中文| 亚洲成人福利片| 美国十次综合导航| 精品制服美女丁香| 国产九色精品成人porny| 韩国欧美一区二区| 丁香啪啪综合成人亚洲小说| eeuss鲁片一区二区三区在线看| 国产69精品一区二区亚洲孕妇| 国产精品一区在线| 成人aa视频在线观看| 色综合久久精品| 欧美美女激情18p| 日韩三级精品电影久久久| 日韩一级二级三级精品视频| 精品国产百合女同互慰| 国产日产精品1区| 亚洲日韩欧美一区二区在线| 亚洲福利国产精品| 麻豆精品新av中文字幕| 国产精品亚洲а∨天堂免在线| 成人福利视频在线| 欧美精品免费视频| 国产亚洲欧美日韩俺去了| 国产精品久久综合| 婷婷六月综合亚洲| 国产成人欧美日韩在线电影| 色天使久久综合网天天| 欧美精品一二三| 国产日韩精品久久久| 亚洲最大的成人av| 精品制服美女久久| 在线精品视频免费观看| 久久综合久久久久88| 亚洲乱码国产乱码精品精98午夜| 日韩中文字幕91| eeuss鲁片一区二区三区在线看| 欧美日韩成人综合在线一区二区| 国产午夜精品一区二区三区视频| 亚洲一二三区不卡| 国产激情91久久精品导航| 日本福利一区二区| 国产日韩精品一区二区三区| 日本一道高清亚洲日美韩| 99在线热播精品免费| 精品少妇一区二区三区在线播放| 亚洲另类春色国产| 岛国一区二区三区|