我使用的是一个复合材料,其fillLayout为内部复合材料,ScrollComposite为外部复合材料。
我已经修复了外部复合材料的尺寸。 当我在外部复合中有滚动条但在内部复合中没有滚动条时,我在将复合数据导出为png时获得完整的信息。 但是当显示的信息太大导致内部复合的滚动条时会出现问题。
这只是所做内容的一小部分:
FillLayout layout = new FillLayout(SWT.HORIZONTAL);
final ScrolledComposite scrolledComposite = new ScrolledComposite(getContainer(), SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
final Composite composite = new Composite(scrolledComposite, SWT.NONE);
composite.setLayout(layout);
GraphViewer gvTree = new GraphViewer(composite, SWT.NONE);
<Code to populate data in the tree>
gvTree.setLayoutAlgorithm(treeLayout,true);
scrolledComposite.setContent(composite);
scrolledComposite.setMinSize(1000,composite.getBounds().height);
答案 0 :(得分:0)
我发现当外部复合体是ScrolledComposite时,为了避免内部复合体中的滚动条,我们需要确保ScrolledComposite的minSize始终大于内部复合体的大小。
为了确保ScrolledComposite大小正确,我改变了
scrolledComposite.setMinSize(1000,composite.getBounds().height);
**to**
scrolledComposite.setMinSize(gvTree.getNodeElements().length*160,
composite.getBounds().height);
这确保在创建图形之后,ScrolledComposite总是大于等于内部复合的当前大小。
希望这有帮助。