如何在禁用ScrolledComposite中的CheckboxTableViewer时启用滚动?

时间:2018-05-02 09:14:24

标签: java swt jface rcp

我在ScrolledComposite中有一个CheckboxTableViewer。我必须根据另一个checkBox按钮启用或禁用所有tableItems。为此,我正在使用

CheckboxTableViewer.getTable().setEnabled(false). 

在上述情况下,ScrolledComposite也会与表一起禁用。但是我希望滚动行为像往常一样工作,即使禁用了CheckboxTableViewer(也禁用了for中的所有项目)。

1 个答案:

答案 0 :(得分:0)

禁用时,无法使表格控件显示滚动条。这就是本机控件的工作方式,即操作系统呈现控件的方式。

但是,您可以将Table控件包装在ScrolledComposite中。这样,ScrolledComposite将滚动而不是表。

以下是我所做的代码:

table.setEnabled(false); 
Composite composite = table.getParent(); 
if ((null != composite) && (composite instanceof ScrolledComposite)) {
      ScrolledComposite scrolledComposite = (ScrolledComposite)composite;
      scrolledComposite.setMinSize(table.computeSize(SWT.DEFAULT, SWT.DEFAULT));  
}