CellEditor-DialogCellEditor编辑方式怎么使用

 时间:2026-02-14 10:41:48

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编辑方式怎么使用

  • 使用oledb访问access
  • 在网页中写入javascript的两种方法
  • 经营奶茶店应该要注意哪些方面?
  • vs2012怎么批量更改变量名而不用担心报错
  • 如何使用Android Studio开发用户登录界面?
  • 热门搜索
    元宵节手抄报英语版 保护动物手抄报资料 关于圣诞节的手抄报 讲文明懂礼貌手抄报 法律伴我成长手抄报 快乐手抄报 初中手抄报版面设计 我的未来不是梦手抄报 手抄报花边简单图案 手抄报的格式