⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 selectedrowbuffer.java

📁 打印管理程序,测试完全通过.windows开发环境.
💻 JAVA
字号:
/* 
    $Author: $
    $Date: $
    $Revision: $
    $NoKeywords: $
*/
package jp.co.ntl.awt;

import jp.co.ntl.awt.event.ChangeListener;
import jp.co.ntl.awt.event.ChangeEvent;
import jp.co.ntl.awt.event.ChangeSupport;

public class SelectedRowBuffer {
    private int[] array;
    private int length;
    private int lastSelectedRow = -1;
    
    private ChangeSupport cs;
    
    public SelectedRowBuffer() {
        array = new int[100];
        length = 0;
    
    	cs = new ChangeSupport();
    }
    
    public void addChangeListener(ChangeListener cl) {
    	cs.addChangeListener(cl);
    }

    public void removeChangeListener(ChangeListener cl) {
    	cs.removeChangeListener(cl);
    }

    /**
     * 巜掕偝傟偨峴偑搊榐偝傟偰偄傞偐挷傋傞丅
     */ 
    public boolean include(int row) {
        int index = getIndex(row);
        if (index == -1) {
            return false;
        }
        return true;
    }
    
    /**
     * 偡偱偵搊榐偝傟偰偄傞峴側傜嶍彍丄堘偆側傜搊榐偡傞丅
     */
    public void changeState(int row) {
        int index = getIndex(row);
        if (index == -1) {
            checkArray();
            array[length++] = row;
        } else {
            array[index] = array[length - 1];
            length--;
        }
        if (length > 0) {
            lastSelectedRow = array[length - 1];
        } else {
            lastSelectedRow = -1;
        }

		cs.fireChangeEvent(new ChangeEvent(this));
    }
    
    /**
     * 峴傪搊榐偡傞丅偡偱偵搊榐偝傟偰偄傞応崌偼曄峏偟側偄丅
     */
    public void add(int row) {
        if (getIndex(row) < 0) {
            checkArray();
            array[length++] = row;
            lastSelectedRow = row;

			cs.fireChangeEvent(new ChangeEvent(this));
        }
    }
    
    /**
     *
     */
    public void set(int row) {
        array[0] = row;
        length = 1;
        lastSelectedRow = row;

		cs.fireChangeEvent(new ChangeEvent(this));
    }
    
    /**
     *
     */
    public void removeOverRowCount(int rowCount) {
        if (length == 0) {
            return;
        }
        int len = length;
        if (array[length - 1] >= rowCount) {
            if (lastSelectedRow == array[length - 1]) {
                lastSelectedRow = -1;
            }
            length--;
        }
        for (int i = len - 2; i >= 0; i--) {
            if (array[i] >= rowCount) {
                if (lastSelectedRow == array[i]) {
                    lastSelectedRow = -1;
                }                
                array[i] = array[length - 1];
                length--;
            }            
        }

		cs.fireChangeEvent(new ChangeEvent(this));
    }
    
    
    /**
     * 偡傋偰偺峴偺搊榐傪夝彍偡傞丅
     */
    public void removeAll() {
        length = 0;
        lastSelectedRow = -1;

		cs.fireChangeEvent(new ChangeEvent(this));
    }

    /**
     *
     */
    public int size() {
        return length;
    }
    
    /**
     *
     */
    public int getLastSelectedRow() {
        return lastSelectedRow;
    }
    
    private int getIndex(int row) {
        for (int i = 0; i < length; i++) {
            if (array[i] == row) {
                return i;
            }
        }
        return (-1);
    }        
    
    private void checkArray() {
        if (length == array.length) {
            int[] temp = array;
            array = new int[array.length + 100];
            System.arraycopy(temp, 0, array, 0, length);
        }
    }
    
    /**
     *
     */
    public int[] getSelectedRows() {
        int[] rows = new int[length];
        System.arraycopy(array, 0, rows, 0, length);
        return rows;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -