eclipse中table控件怎么具有编辑功能

         eclipse中table是显示数据的,可是不克不及点窜数据,很是不变。下面分享一下table控件怎么具有编纂能力!我写的经验对你进修java有帮忙的话,给我投票或者保藏!

http://v.youku.com/v_show/id_XMzk1MTEzNDk5Mg==.html

0eclipse TableViewer显示表中数据(mysql)

0java对mysql中的表增添数据

0java删除mysql数据库中的数据

工具/原料

  • eclipse mars 2

方式/步骤

  1. 1

    没有看之前的经验的话,看看经验链接,下面的讲解和之前经验联系在一路的。

    1、表的数据模子。

    2、标签类

    3、内容供给器

    4、table数据ArrayList<>

    不熟悉的看看之前的经验链接。

  2. 2

    新建一个ICellModifier编纂类,读取table中的数据,更新table中的数据:

    public class Xinxibianji implements ICellModifier{

    @Override

    public boolean canModify(Object element, String property) {

    //true :列可以点窜

    //false :不克不及点窜

    return false;

    }

    @Override

    public Object getValue(Object element, String property) {

    读取tabled中的数据

    return null;

    }

    @Override

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

    把新的数据写到table中

    }

    }

  3. 3

    读取table中的数据getValue:

    Shangpinxinxi sp=(Shangpinxinxi) element;//一行数据

    switch(property){

    case "fenlei":          //列名  

    return sp.getfenlei();

    case "mingcheng":

    return sp.getmingcheng();

    case "zhujima":

    return sp.getzhujima();

    case "danwei":

    return sp.getdanwei();

    case "jiage":

    return Float.toString(sp.getjiage());

    case "hyjiage":

    return Float.toString(sp.gethyjiage());

    }

    return null;

  4. 4

    把新点窜的数据保留在table中:

    TableItem ti=(TableItem)element;

    Shangpinxinxi sp=(Shangpinxinxi)ti.getData();  一行数据

    switch(property){    把新数据写到数据模子中

    case "fenlei":

    sp.setfenlei((String)value);

    break;

    case "mingcheng":

    sp.setmingcheng((String)value);

    break;

    case "zhujima":

    sp.setzhujima((String)value);

    break;

    case "danwei":

    sp.setdanwei((String)value);

    break;

    case "jiage":

    sp.setjiage(Float.valueOf(value.toString()));

    break;

    case "hyjiage":

    sp.sethyjiage(Float.valueOf(value.toString()));

    break;

    }

    tv.update(sp, null);  把新数据更新在table中

  5. 5

    在createPartControl这个方式中界说列名:

    String[] lm={"fenlei","mingcheng","zhujima","danwei","jiage","hyjiage"};

    tv.setColumnProperties(lm);

  6. 6

    界说编纂器,几多列就界说几个:

    CellEditor[] cell = new CellEditor[6]; 

    cell[0]=new TextCellEditor(table,SWT.SINGLE | SWT.BORDER);

    cell[1]=new TextCellEditor(table,SWT.SINGLE | SWT.BORDER); 

    cell[2]=new TextCellEditor(table,SWT.SINGLE | SWT.BORDER); 

    cell[3]=new TextCellEditor(table,SWT.SINGLE | SWT.BORDER); 

    cell[4]=new TextCellEditor(table,SWT.SINGLE | SWT.BORDER); 

    cell[5]=new TextCellEditor(table,SWT.SINGLE | SWT.BORDER); 

    tv.setCellEditors(cell);

  7. 7

    设置table的编纂类:

    tv.setCellModifier(new Xinxibianji());

  8. 8

    运行项目,发现数据不克不及编纂。

  9. 9

    把canModify这个方式的返回值点窜为true。

  10. 10

    运行项目,table中的数据编纂了!

  • 发表于 2018-12-06 00:00
  • 阅读 ( 261 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论