?? selectedrowbuffer.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 + -