如何在CTabFolder中隐藏CTabItem

Dav*_*vid 4 java swt jface

我找不到任何方法使标签不可见或以其他方式隐藏在SWT/JFace应用程序中 - 我希望第二个标签可用(或不)基于用户设置的其他一些偏好.

想出这个就不难了!

Kir*_*lin 5

我知道的唯一方法是为要隐藏的选项卡配置CTabItem,然后在想要显示它时创建一个新的CTabItem.有点,

 CTabFolder folder = new CTabFolder(parent, SWT.NONE);
 Label label = new Label(folder, SWT.NONE);
 label.setText("Hello");
 CTabItem item = new CTabItem(folder);
 item.setControl(label);
 // Hide it
 item.dipose();
 // show it again
 CTabItem item = new CTabItem(folder);
 item.setControl(label);
Run Code Online (Sandbox Code Playgroud)

如果你想在中间隐藏一个标签,你需要在你放置的标签之后重新创建所有标签.如果你创建一个包含控件的类和一个可以用来切换可见性的字段,这可能是最简单的.然后你可以只是将所有CTabItems都放在一边,并重新创建iff,如果visibility字段为true.

  • 如果有人在5年后应该面对这个问题,我必须补充一点:没有必要在创建后重新创建所有标签.您可以使用构造函数[CTabItem(CTabFolder parent,int style,int index)]将创建的选项卡放置到正确的位置(http://cs.nyu.edu/zilin/swt/API/org/eclipse/swt/custom/ CTabItem.html) (3认同)