CellEditor-DialogCellEditor编辑方式怎么使用

eclipse中的TableViewer,供给了多种编纂体例CellEditor:TextCellEditor、CheckboxCellEditor、ComboBoxCellEditor、DialogCellEditor。下面讲解DialogCellEditor这个编纂体例怎么利用。我写的经验对你进修java有帮忙的话,给我投票、点赞或者保藏!

1把中的数据排序

1中实现过滤数据

2怎么检测输入字符串划定的格局

东西/原料

  • eclipse rcp 4.5.2

方式/步调

  1. 1

    新建一个swt-java项目,项目标名子为javatable。

  2. 2

    成立一个shell窗口,窗口的名字为javatable。

  3. 3

    在窗口中增添一个TableViewer。TableViewerColumn。

  4. 4

    在table的数据成立一个实体类。

    public class jilu{

    private String mingcheng="";

    public String getmingcheng(){

    return this.mingcheng;

    }

    public void setmingcheng(String mingcheng){

    this.mingcheng=mingcheng;

    }

    }

  5. 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;

    }

    }

  6. 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) {

    }

    }

  7. 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);

    }

    }

  8. 8

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

    public class mcDialogCellEditor extends DialogCellEditor {

    public mcDialogCellEditor(Composite parent, int style){

    super(parent,style);

    }

    @Override

    protected Object openDialogBox(Control cellEditorWindow) {

    return "插件  项目";

    }

    }

  9. 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);

  10. 10

    运行项目成果如下图。

  • 发表于 2019-01-05 00:00
  • 阅读 ( 747 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具