在eclipse里用SWT怎么才能添加滚动条
在eclipse里用SWT把数据都加载到页面了,但是不能全部显示出来,需要添加滚动条,但是在百度上查到的ScrolledCompositescrolledComposit...
在eclipse里用SWT把数据都加载到页面了,但是不能全部显示出来,需要添加滚动条,但是在百度上查到的 ScrolledComposite scrolledComposite = new ScrolledComposite(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); /////111 Composite comp = new Composite(scrolledComposite, SWT.NONE );//|SWT.H_SCROLL | SWT.V_SCROLL scrolledComposite.setExpandHorizontal(true); scrolledComposite.setExpandVertical(true); scrolledComposite.setMinWidth(750); scrolledComposite.setMinHeight(400); // 定义一个面板Composite,用此面板来容纳其他的组件 scrolledComposite.setContent(comp);// 设置composite被scrolledComposite控制 添加进去还是不行????该怎么在eclipse里用SWT在原有循环出来的数据,添加滚动条呢??????
谢谢,已经解决了!!! 展开
谢谢,已经解决了!!! 展开
2个回答
2015-12-08 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
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就有滚动条了。
展开全部
把你的shell用FillLayout布局试试
shell.setLayout(new FillLayout(SWT.HORIZONTAL));
追问
我能在问你一个问题吗?怎么在SWT中用上下键控制滚动条????
追答
给你的scrollComposite加个键盘监听,在监听中控制
final ScrollBar vBar = scrolledComposite.getVerticalBar();
final int vIncrement = vBar.getIncrement();
scrolledComposite.addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {
if (e.keyCode == SWT.ARROW_UP) {
int vSelect = vBar.getSelection();
if (vSelect > 0) {
vBar.setSelection(vSelect - vIncrement);
}
}
else if (e.keyCode == SWT.ARROW_DOWN) {
int vSelect = vBar.getSelection();
if (vSelect < 100) {
vBar.setSelection(vSelect + vIncrement);
}
}
}
@Override
public void keyReleased(KeyEvent e) {
}
});
想改水平滚动条同理,把getVerticalBar()改成getHorizontalBar()就行
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询