Dav*_*ton 3 java user-interface swt scroll
我试图在我的选项卡窗口中添加一个可滚动区域.到目前为止,我在一个shell中有一个CTabFolder.我已经添加了5个CTabItems,一切都按预期工作.
在我的一个CTabItems上,内容太大而无法放在屏幕上,所以我希望能够滚动.内容是包含各种小部件的组的集合.
所以CTabFolder创建如下:
CTabFolder tabs = new CTabFolder(shell, SWT.BORDER);
tabs.setSimple(false);
tabs.setUnselectedImageVisible(false);
tabs.setUnselectedCloseVisible(false);
tabs.setMinimizeVisible(false);
tabs.setMaximizeVisible(false);
FormData tabsLayoutData = new FormData();
tabsLayoutData.top = new FormAttachment(0, 5);
tabsLayoutData.left = new FormAttachment(0, 5);
tabsLayoutData.bottom = new FormAttachment(92, 0);
tabsLayoutData.right = new FormAttachment(100, -5);
tabs.setLayoutData(tabsLayoutData);
Run Code Online (Sandbox Code Playgroud)
那么CTabItem:
CTabItem tab = new CTabItem(tabs, SWT.NONE);
tab.setText("Role");
Run Code Online (Sandbox Code Playgroud)
然后内容:
复合tabArea = new Composite(tabs,SWT.V_SCROLL); tabArea.setLayout(new FormLayout()); tab.setControl(tabArea);
因此,选项卡中包含的组是使用tabArea作为父项创建的,所有内容都会按预期显示.问题是,垂直滚动条始终存在,但似乎没有做任何事情.内容在tabArea复合材料的底部被切掉.
还有什么我需要做的才能使滚动正常工作吗?
您需要使用ScrolledComposite.(向下滚动并找到JavaDoc和代码段的链接)
以下是适合您情况的代码:
ScrolledComposite scroller = new ScrolledComposite(tabs, SWT.BORDER | SWT.V_SCROLL);
Composite tabArea = new Composite(scroller, SWT.NONE);
scroller.setContent(tabArea);
// create some controls in TabArea and assign a layout to TabArea
scroller.setExpandVertical(true);
scroller.setExpandHorizontal(true);
scroller.setMinSize(tabArea.computeSize(SWT.DEFAULT, SWT.DEFAULT));
tab.setControl(scroller);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5417 次 |
| 最近记录: |