
滚动菜单你要这样写,创建滚动菜单scrolledComposite之后,再创建一个parent,然后scrolledComposite.setContent(parent)
parent.setSize(parent.computeSize(SWT.DEFAULT, SWT.DEFAULT))
然后parent记得设置layout
这样菜单才会显示,然后循环出来的composite的父组件都要设置成parent。
不知道你是在问什么。如果是你想问怎么控制:ctabItem可以用setcontrol来控制一个带有滚动条的scrollcomposite
还是想问点什么,问个问题都不能把问题描述得清楚点。
tabItem2.setControl(addSc(tabFolder1)) /*** 加入ScrolledComposite
* @param grandparent 必须是GridLayout
* @return
*/
private Composite addSc(Composite grandparent) {
Composite parent=new Composite(grandparent, SWT.BORDER)
//sc的父窗口必须是FillLayout
parent.setLayout(new FillLayout())
ScrolledComposite sc = new ScrolledComposite(parent, SWT.BORDER
| SWT.V_SCROLL | SWT.H_SCROLL)
Composite c = new Composite(sc, SWT.NONE)
c.setSize(400, 400)
c.setLayout(new GridLayout(1, true))
for (int i = 0 i < 1000 i++) {
new Button(c, SWT.PUSH).setText("Text" + i)
}
sc.setMinSize(c.computeSize(SWT.DEFAULT, SWT.DEFAULT))
sc.setContent(c)
sc.setExpandHorizontal(true)
sc.setExpandVertical(true)
sc.setAlwaysShowScrollBars(true)
return parent
}
sc的父窗口必须是FillLayout型的,我本来想把tabFolder1设置成FillLayout的,让tabFolder1作为sc的父窗口,发现结果没有滚动条。后来就在tabFolder1创了一个子Composite,这个Composite设置成FillLayout,再在此Composite下创建sc就有滚动条了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)