【发布时间】:2021-08-23 19:42:21
【问题描述】:
我有一个方法,它创建一个 TabFolder,里面有两个标签(TabItem),分别称为“Edition”和“Visualisation”,我想在“EditionTab”标签项中添加一个滚动条。
我尝试了以下方法(addScrollbar)来添加滚动条,但它不起作用,有什么建议吗? :
public static EditionView create(TabFolder mainTabFolder) {
return new EditionView(mainTabFolder);
}
private EditionView(TabFolder mainTabFolder) {
checkNotNull(mainTabFolder);
this.tabfolder = mainTabFolder;
this.mainComposite = new Composite(tabfolder, SWT.NONE);
this.addAlternativeControls = new LinkedHashMap<>();
this.alternativeControls = new LinkedHashMap<>();
this.deleteAlternativeControls = new LinkedHashMap<>();
this.gridLayout = new GridLayout(2, false);
this.mainComposite.setLayout(gridLayout);
initOpenBtn();
addUserIndication();
initEditionTab();
addScrollbar();
}
/**
* Initialization of the editing tab window
*/
private void initEditionTab() {
this.editionTab = new TabItem(this.tabfolder, SWT.NONE);
editionTab.setText("Edition");
}
private void addScrollbar() {
ScrolledComposite sc = new ScrolledComposite(this.tabfolder, SWT.V_SCROLL |
SWT.H_SCROLL);
sc.setExpandHorizontal(true);
sc.setExpandVertical(true);
sc.setContent(mainComposite);
sc.setMinSize(mainComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
editionTab.setControl(sc);
}
谢谢:)
【问题讨论】:
-
mainComposite 应该将滚动复合作为其父文件夹,而不是选项卡文件夹。
-
当 mainComposite 已经被 tabfolder 用作其他方法的父级时,mainComposite 如何成为滚动复合的父级,例如这种方法? :私人无效addUserIndication(){ this.userIndication =新标签(mainComposite,SWT.NONE); GridData gridData = new GridData(GridData.FILL, GridData.VERTICAL_ALIGN_BEGINNING, false, false); userIndication.setLayoutData(gridData);我应该为滚动条创建另一个复合吗?
-
不可能两者兼有。在滚动合成中使用另一个合成。
标签: java swt scrollbar tabitem