我创建了一个包含两部分的应用程序:
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”操作时,“参数无效”
您能告诉我如何解决此问题吗?
最佳答案
您收到该错误,因为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 });
关于java - 如何在SWT中拆分SASH?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20520921/