我创建了一个包含两个部分的应用程序:
1. tree viewer
2. table viewer + messages
看起来像
-------------------------------
- tree - table -
- - -
- - -----------------
- - messages
-------------------------------
我试图从中构建Sash将分割树区域和表+消息区域。 然后我想将表区域拆分为两个区域表和消息。
当我尝试对表和消息进行第二次拆分时收到错误消息。
这是代码
SashForm sashForm = new SashForm(parent, SWT.HORIZONTAL);
Composite treeComposite = new Composite(sashForm, SWT.BORDER);
Composite detailsCompositePart = new Composite(sashForm, SWT.BORDER);
GridLayout parentSideGridLayout = new GridLayout();
parentSideGridLayout.numColumns = 1;
detailsCompositePart.setLayout(parentSideGridLayout);
sashForm.setWeights(new int[] { 300, 700 });
createTreePart(treeComposite )
SashForm verticalForm = new SashForm(detailsCompositePart, SWT.VERTICAL);
verticalForm.setWeights(new int[] { 800, 200 });
detailsComposite = new Composite(sashForm, SWT.BORDER);
createDeatilsPart(detailsComposite )
messageComposite = new Composite(sashForm, SWT.NONE);
createMessagePart(messageComposite )
我在此声明后收到错误消息
verticalForm.setWeights(new int[] { 800, 200 });
当我试图做第二个shash时,“参数无效” 你能告诉我如何解决这个问题吗?
答案 0 :(得分:1)
您收到该错误,因为verticalForm
没有两个孩子。您必须使用sashForm
替换两个Composite
的构造函数中的verticalForm
:
SashForm verticalForm = new SashForm(detailsCompositePart, SWT.VERTICAL);
detailsComposite = new Composite(verticalForm , SWT.BORDER);
createDeatilsPart(detailsComposite);
messageComposite = new Composite(verticalForm , SWT.NONE);
createMessagePart(messageComposite);
verticalForm.setWeights(new int[] { 800, 200 });