SWT 添加滚动条问题

SWT 添加滚动条问题,第1张

思路是没啥问题的,你是滚动菜单没出来是吧。

滚动菜单你要这样写,创建滚动菜单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就有滚动条了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11574406.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存