[英]How to hide/delete column in SWT table
使用哪种方法来隐藏/删除SWT中的列(特别是在Eclipse插件中)?
我也应该这样
我们在这里的许多表格上都是这样做的。
首先,我们确保用户不会看到我们正在做的事情。
table.setRedraw( false );
然后我们删除所有列。
while ( table.getColumnCount() > 0 ) {
table.getColumns()[ 0 ].dispose();
}
然后我们添加所需的那些。
ArrayList<Column> columns = getShownColumns();
for ( Column column : columns ) {
TableColumn tableColumn = new TableColumn( table, column.getStyle() );
tableColumn.setText( column.getTitle() );
tableColumn.setWidth( column.getWidth() );
}
最后,我们让用户看到我们做了什么。
table.setRedraw( true );
我每次只使用可见列重新创建表列。 如果使用SWT.VIRTUAL
样式位,则速度相当快。 设置table.setRedraw(false)
,从表中删除数据,处理所有TableColumns,重新创建必要的数据并重新设置数据。 然后设置table.setRedraw(true)
。 这最大限度地减少了闪烁。
我做了所有这些,它工作正常,TableColumns的处理按预期工作。
但是,使用SWT.VIRTUAL
不适合胆小的人。 它暗示了对表的不同处理。 你可以先试试,看看它是否足够快。
拥有一个包含数千列的表格,只向用户显示一些内容对我来说非常奇怪。 使用本机Table
实现,我预计会遇到问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.