Java 如何将swt选项卡项设置为非活动?

Java 如何将swt选项卡项设置为非活动?,java,tabs,swt,Java,Tabs,Swt,我正在设计一个基于org.eclipse.swt.widgets.TabItem的gui 是否有办法将TabFolder中的TabItem显示为“非活动”,即使用通常的浅灰色,并且所有包含的元素也不活动 这是我可以设计的其他系统的东西。我原以为swt也可以,但我对这个环境还不熟悉,在谷歌搜索了这个话题后,我找不到任何解决方案。可能吗?不可能将TabItem设置为非活动(禁用),因为此时无法单击选定的TabItem。但是禁用所选TabItem的内容非常容易。只需获取绑定到TabItem实例的Con

我正在设计一个基于
org.eclipse.swt.widgets.TabItem
的gui

是否有办法将
TabFolder
中的
TabItem
显示为“非活动”,即使用通常的浅灰色,并且所有包含的元素也不活动


这是我可以设计的其他系统的东西。我原以为swt也可以,但我对这个环境还不熟悉,在谷歌搜索了这个话题后,我找不到任何解决方案。可能吗?

不可能将
TabItem
设置为非活动(禁用),因为此时无法单击选定的
TabItem
。但是禁用所选
TabItem
的内容非常容易。只需获取绑定到
TabItem
实例的
Control
,并调用
setEnable(false)

/*
*TabFolder示例代码段:创建选项卡文件夹(六页)
*
*有关所有SWT示例代码段的列表,请参见
* http://www.eclipse.org/swt/snippets/
*/
导入org.eclipse.swt.*;
导入org.eclipse.swt.graphics.Rectangle;
导入org.eclipse.swt.widgets.*;
公共类选项卡项禁用{
公共静态void main(字符串[]args){
显示=新显示();
最终外壳=新外壳(显示);
final TabFolder TabFolder=新TabFolder(shell,SWT.BORDER);
矩形clientArea=shell.getClientArea();
tabFolder.setLocation(clientArea.x、clientArea.y);

对于(inti=0;i来说,@Sorceror的答案很酷。但是我有一点注意到代码

中的getTabList()

表示“选项卡顺序列表”,而不是“选项卡项”本身。因此,如果要设置一些已启用的项或禁用项(tabFolder.getTabList()[0]。setEnabled(true);),则顺序可能不正确

/*
 * TabFolder example snippet: create a tab folder (six pages)
 *
 * For a list of all SWT example snippets see
 * http://www.eclipse.org/swt/snippets/
 */
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.*;

public class TabItemDisable {

public static void main (String [] args) {
    Display display = new Display ();
    final Shell shell = new Shell (display);
    final TabFolder tabFolder = new TabFolder (shell, SWT.BORDER);
    Rectangle clientArea = shell.getClientArea ();
    tabFolder.setLocation (clientArea.x, clientArea.y);
    for (int i=0; i<6; i++) {
        TabItem item = new TabItem (tabFolder, SWT.NONE);
        item.setText ("TabItem " + i);
        Button button = new Button (tabFolder, SWT.PUSH);
        button.setText ("Page " + i);
        item.setControl (button);
    }
    tabFolder.pack ();

    // disabling content of selected TabItems
    tabFolder.getTabList()[0].setEnabled(false);
    tabFolder.getTabList()[2].setEnabled(false);
    tabFolder.getTabList()[4].setEnabled(false);

    shell.pack ();
    shell.open ();
    while (!shell.isDisposed ()) {
        if (!display.readAndDispatch ()) display.sleep ();
    }
    display.dispose ();
}
} 
tabFolder.getTabList()[0].setEnabled(false);
tabFolder.getTabList()[2].setEnabled(false);
tabFolder.getTabList()[4].setEnabled(false);