现在我们一个J2EE的东西要改成单机版的,
但是不想改动太大,
在表单里有个select,它不是有个name和value值,吗。
在swt中应该就是combox吧,他的item这么设置它的value值,因为这个value值关系到很多联动的下拉,所以不能用这个index来做。
但是不想改动太大,
在表单里有个select,它不是有个name和value值,吗。
在swt中应该就是combox吧,他的item这么设置它的value值,因为这个value值关系到很多联动的下拉,所以不能用这个index来做。
如果是设置COMBOX中的项可以直接使用ADD(STRING ITEMNAME)就可以。
说用index不行,怎么可能呢,一个combox中的index是唯一的,怎么不可以确定呢
import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.*;public class Select extends Composite{
/*
* 所有optin的值
* */
List optionList;
Combo combo;
public Select(Composite parent, int style){
super ( parent, style);
this.setLayout(new FillLayout());
combo = new Combo(this,SWT.READ_ONLY);
optionList = new ArrayList();
}
//添加一个option
public void addOption(String optionValue,String optionText){
optionList.add(optionValue);
combo.add(optionText);
}
//获取select 值
public String getValue(){
int selectIndex = combo.getSelectionIndex();
return (String)optionList.get(selectIndex);
}
//通过index查找option value
public String getOptionValueByIndex(int index){
return (String)optionList.get(index);
}
//删除所有的option
public void removeAllOptions(){
combo.removeAll();
combo.setEnabled(false);
this.optionList.clear();
}
//删除option by index
public void removeOptionByIndex(int index){
combo.remove(index);
this.optionList.remove(index);
}
//设置选中
public void selectIndex(int index){
combo.select(index);
}
//添加事件处理
public void addSelectionListener(SelectionListener listener){
combo.addSelectionListener(listener);
}
//设置不可编辑
public void setEnabled(boolean text){
if(text==true){
combo.setEnabled(true);
}
if(text==false){
combo.setEnabled(false);
}
}
//获取是否编辑
public boolean getEnabled(){
return combo.getEnabled();
}
//获取combo的的长度
public int getItemCount(){
return combo.getItemCount();
}
}