CellEditor-DialogCellEditor编辑方式怎么使用

2025-11-28 18:00:08

1、新建一个swt-java项目,项目的名子为javatable。

CellEditor-DialogCellEditor编辑方式怎么使用

2、建立一个shell窗口,窗口的名字为javatable。

CellEditor-DialogCellEditor编辑方式怎么使用

3、在窗口中增加一个TableViewer。TableViewerColumn。

CellEditor-DialogCellEditor编辑方式怎么使用

4、在table的数据建立一个实体类。

public class jilu{

private String mingcheng="";

public String getmingcheng(){

return this.mingcheng;

}

public void setmingcheng(String mingcheng){

this.mingcheng=mingcheng;

}

}

CellEditor-DialogCellEditor编辑方式怎么使用

5、新建一个标签类,把数据显示在table中。

public class mcbiaoqian implements ITableLabelProvider  {

@Override

public void addListener(ILabelProviderListener listener) {

}

@Override

public void dispose() {

}

@Override

public boolean isLabelProperty(Object element, String property) {

return false;

}

@Override

public void removeListener(ILabelProviderListener listener) {

}

@Override

public Image getColumnImage(Object element, int columnIndex) {

return null;

}

@Override

public String getColumnText(Object element, int columnIndex) {

if (element instanceof jilu){

jilu xx = (jilu)element;

switch(columnIndex){

case 0:

return xx.getmingcheng();

}

}

return null;

}

}

CellEditor-DialogCellEditor编辑方式怎么使用

6、新建一个数据的容器类,读取一行数据。

public class mcrongqi implements IStructuredContentProvider {

public Object[] getElements(Object inputElement) {

if(inputElement instanceof List){

return ((List<?>)inputElement).toArray();

}else{

return new Object[0];

}

}

public void dispose() {

}

public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

}

}

CellEditor-DialogCellEditor编辑方式怎么使用

7、新建一个编辑类,允许在table中编辑数据。

public class bjmingcheng implements ICellModifier{

@Override

public boolean canModify(Object element, String property) {

return true;

}

@Override

public Object getValue(Object element, String property) {

jilu wp=(jilu) element;

switch(property){

case "mingcheng":

return wp.getmingcheng();

}

return null;

}

@Override

public void modify(Object element, String property, Object value) {

if(element==null){

return;

}

TableItem ti=(TableItem)element;

jilu wp=(jilu)ti.getData();

switch(property){

case "mingcheng":

wp.setmingcheng((String)value);

break;

}

tv.update(wp, null);

}

}

CellEditor-DialogCellEditor编辑方式怎么使用

8、新建一个窗口编辑的类,可以弹出窗口,在编辑的内容返回到table中显示,我没有新建一个窗口,我返回的是字符串。

public class mcDialogCellEditor extends DialogCellEditor {

public mcDialogCellEditor(Composite parent, int style){

super(parent,style);

}

@Override

protected Object openDialogBox(Control cellEditorWindow) {

return "插件  项目";

}

}

CellEditor-DialogCellEditor编辑方式怎么使用

9、把定义的类初始化:

tv.setLabelProvider(new mcbiaoqian());

tv.setContentProvider(new mcrongqi());

List<jilu> li=new ArrayList<jilu>();

li.add(new jilu());

li.add(new jilu());

tv.setInput(li);

String[] lm={"mingcheng"};

tv.setColumnProperties(lm);

tv.setCellModifier(new bjmingcheng());

CellEditor[] cell = new CellEditor[1]; 

cell[0]=new mcDialogCellEditor(table,SWT.BORDER);

tv.setCellEditors(cell);

CellEditor-DialogCellEditor编辑方式怎么使用

10、运行项目结果如下图。

CellEditor-DialogCellEditor编辑方式怎么使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢