📄 circqueue.java
字号:
/*
* 该类负责创建组件获取输入焦点的顺序列表
*/
class qElement
{
Object element;
qElement next;
qElement prev;
qElement(Object element,qElement tail,qElement head)
{
this.element=element;
if(null != head && null != tail){
prev=head;
head.next=this;
next=tail;
}
else{
next=this;
prev=this;
}
}
}
//创建顺序列表,处理列表中的qElement对象
public class circQueue
{
qElement head=null;
qElement tail=null;
qElement current=null;
int count=0;
//向顺序列表中添加组件
public synchronized void addElement(Object object)
{
current = new qElement(object,tail,head);
if(null == tail) tail=current;
head=current;
tail.prev=current;
count++;
}
//从顺序列表中去除组件
public synchronized boolean removeElement(Object obj)
{
for(int i=0; i< count; i++){
if(obj.equals(current.element)){
if(count > 1){
current.prev.next=current.next;
current.next.prev=current.prev;
if(tail==current)
tail=current.next;
if(head==current)
head=current.prev;
count--;
}
else{
current=head=tail=null;
count=0;
}
resetQueue();
return true;
}
getNext();
}
return false;
}
//返回顺序列表中的元素数量
public int size()
{
return count;
}
//重新设置当前的列表顺序,并且返回列表中的第一个元素
public Object resetQueue()
{
current=tail;
if(null == current) return null;
else return current.element;
}
//返回当前所指向的元素
public Object getCurrent()
{
return current.element;
}
//在顺序列表中进行搜索,如果找到所要的元素,将其设置为当前元素
public void setCurrent(Object obj)
{
for(int i=0; i< count; i++){
if(obj.equals(current.element))break;
getNext();
}
}
//在顺序列表中搜索对象,如果在列表中找到该对象,
//则返回true,否则返回false
public boolean isElement(Object obj)
{
qElement cur = current;
boolean retval = false;
for(int i=0; i< count; i++){
if(obj.equals(current.element)){
retval = true;
break;
}
getNext();
}
current=cur;
return retval;
}
//在顺序列表中获取下一个组件对象
public Object getNext()
{
current=current.next;
return current.element;
}
//在顺序列表中获取前一个对象
public Object getPrev()
{
current=current.prev;
return current.element;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -