swt table 删除行TableEditor总是报widget is disposed错误

剑舞雪春秋 2012-04-13 10:58:55

{
table.remove(指定的某一行);
}

{
Label[] labelfont; //标签数组 ,用来标识tableeditor中的标签
TableEditor[] editor // TableEditor数组

labelfont[指定的某一行].dispose;
editor[指定的某一行].dispose;

}

第一次调用删除后 表格就不对了,排版就乱了,第二次在点击,就会报错,
Widget is disposed
是不是不能指定哪一行disposed()啊?或者说这个方法默认是disposed()所有
望各位高手不吝赐教,小弟不甚感激……
...全文
620 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
黑桃_杰克 2012-12-26
  • 打赏
  • 举报
回复
我也碰到这个问题了,不过已经完美解决了 ~ 记得把你添加的控件都记录下来,当你删除某一行的时候,把那一行上的空间都dispose掉就可以了~
salever 2012-04-20
  • 打赏
  • 举报
回复
table.remove 在UI上删除一行,内存中的数据还在,这个没有问题。下一次又会新建TableItem的呀,还是没有太明白为什么要dispose

如果是遇到行的删除添加修改,可以考虑使用JFace的TableViewer
剑舞雪春秋 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

dispose一般是不同手动调用的,除非一些特殊的Image,Color等。LZ你这里的代码是什么逻辑,为什么要dispose Label和TableEditor?
[/Quote]

代码晚上发,有点多,只要有图片路径和包就可以运行
剑舞雪春秋 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

dispose一般是不同手动调用的,除非一些特殊的Image,Color等。LZ你这里的代码是什么逻辑,为什么要dispose Label和TableEditor?
[/Quote]
table的行中间如果要加控件,就要用到 TableEditor来把和Table有关的控件加入到每一行中间,加入成功后,我现在想删除某一行的数据,如果直接调用table.remove(指定的某一行);但是table只会删除这一行,和这一行有关系的组件及 editor还在,所以我要注销控件和editor。(这也是我看网上说的,这样删除才能删的掉)我现在是只能删一次,第二次就报装饰已销毁。
剑舞雪春秋 2012-04-18
  • 打赏
  • 举报
回复
table的行中间如果要加控件,就要用到 TableEditor来把和Table有关的控件加入到每一行中间,加入成功后,我现在想删除某一行的数据,如果直接调用table.remove(指定的某一行);但是table只会删除这一行,和这一行有关系的组件及 editor还在,所以我要注销控件和editor。(这也是我看网上说的,这样删除才能删的掉)我现在是只能删一次,第二次就报装饰已销毁。
knightGG 2012-04-13
  • 打赏
  • 举报
回复
代码发出来。
salever 2012-04-13
  • 打赏
  • 举报
回复
dispose一般是不同手动调用的,除非一些特殊的Image,Color等。LZ你这里的代码是什么逻辑,为什么要dispose Label和TableEditor?

58,453

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧