[英]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.