如何隐藏 SWT 组合以使其不占用空间?

2024-01-11

我需要隐藏一个组合(以及里面的所有孩子)。只需设置setVisible(false)将保留组合的空间。

Composite outer = new Composite(parent, SWT.NONE);      
outer.setLayout(new GridLayout(1,false));
outer.setLayoutData(new GridData(GridData.FILL_BOTH) );

Composite compToHide = new MyComposite(outer, SWT.NONE);        
compToHide.setLayout(new GridLayout());
compToHide.setVisible(false);

这是一些可以实现您想要的功能的代码。我基本上用GridData#exclude结合Control#setVisible(boolean)隐藏/取消隐藏Composite:

public static void main(String[] args)
{
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("StackOverflow");
    shell.setLayout(new GridLayout(1, true));

    Button hideButton = new Button(shell, SWT.PUSH);
    hideButton.setText("Toggle");

    final Composite content = new Composite(shell, SWT.NONE);
    content.setLayout(new GridLayout(3, false));

    final GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    content.setLayoutData(data);

    for(int i = 0; i < 10; i++)
    {
        new Label(content, SWT.NONE).setText("Label " + i);
    }

    hideButton.addListener(SWT.Selection, new Listener()
    {
        @Override
        public void handleEvent(Event arg0)
        {
            data.exclude = !data.exclude;
            content.setVisible(!data.exclude);
            content.getParent().pack();
        }
    });

    shell.pack();
    shell.open();
    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

隐藏之前:

隐藏后:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何隐藏 SWT 组合以使其不占用空间? 的相关文章

随机推荐

  • MySQL 在一个查询中获取 Mindate 和 Maxdate

    如何仅使用一个sql查询获取mysql中的最大日期和最小日期 SELECT MIN date col MAX date col FROM table name
  • 持有多个锁的线程进入 wait() 状态。它会释放所有持有锁吗?

    我编写了这个程序来检查线程 t1 是否持有两个不同对象的锁 Lock class 和 MyThread class 使用 MyThread class wait 在 MyThread class 实例上进入等待模式 它不会释放 Lock c
  • 使用 v4 Fragments API 实现 ActionBar 选项卡

    我的应用程序当前使用 Fragments v4 兼容性包来支持 Android 版本一直到 1 6 这意味着我的所有片段都继承自兼容包的版本Fragment 我目前正在尝试重新设计应用程序的部分内容以利用 Honeycomb 功能 例如Ac
  • 使用 Kendo Grid 获取数据时日期格式发生变化

    我正在尝试使用一些参数获取数据并将其加载到剑道网格中 但是当我使用日期参数时 日期格式正在改变 因此在服务器端显示错误的日期 作为我使用的参数的示例 new Date April 01 2016 但在服务器端它变成 04 01 2016 这
  • Internet Explorer toDataURL() 替代方案?

    所以我需要保存在a上绘制的图像数据
  • C libm.a 编译时不需要链接

    我试图编译一个源文件 其中包括
  • RegEx:如果lookbehind显示小写,则删除换行符

    我正在 Notepad 中执行 CTRL H 查找和替换 我想找到所有换行符后跟小写字符 以便用空格字符替换它们 从而删除文本中不需要的换行符 Find r n A Z 0 9 代替 在此插入空格字符 确保您选择了 相符 and 正则表达式
  • boost是如何实现信号和槽的?

    要继续另一个问题 我们问这个 Boost是如何实现信号 槽机制的 See 信号和槽是如何在底层实现的 https stackoverflow com questions 1406940 how signal and slots are im
  • 什么是快照构建/源版本?

    什么是快照构建 源版本 具体到 JDK 7 快照版本供用户在平台仍在开发时下载和查看 http www oracle com technetwork java javase downloads ea jsp 142245 html http
  • R 以相似字符串开头的不同列组的行总和

    我对 R 还很陌生 这是我第一次敢在这里提问 我正在使用具有李克特量表的数据集 并且我想对不同组的列进行求和 这些列共享其名称中的第一个字符串 下面我构建了一个只有 2 行的数据框来说明我遵循的方法 尽管我希望收到有关如何编写更有效的方法的
  • Ajax 传递空值但控制器在 ASP.NET MVC 中获取 null

    我正在与ASP NET MVC并且发送的值有问题Ajax到我的控制器 假设我有SampleViewModel像这样 public class SampleViewModel private string firstName string E
  • Conda:将本地开发包安装到单个 conda 环境中

    如果我使用 virtualenv 我将激活项目的虚拟环境 然后安装我正在开发模式下开发的包 像下面这样 workon superbad pip install e fnawesome 这允许我的包裹fnawesome可以通过我的中的任何代码
  • C++中多重继承的限制

    C 中多重继承的限制是什么 即一个类可以继承多少个类 它是否依赖于实现 或者对多重继承中可以继承的类的数量是否有限制 它是实现定义的 C 11 给出了推荐的最小值实施数量标准部分 直接和间接基类 16 384 单个类的直接基类 1 024
  • JavaScript。无法在 safari 中打开新标签

    以下 JavaScript 可以在 Firefox Chrome 和 IE 中打开一个新选项卡 但它会在 Safari 中打开一个新窗口 javascript window open url blank opens new window i
  • Maven 插件自动生成 setter/getter?

    是否有一个 Maven 插件可以自动生成具有相应 JavaDocs 的 setter 和 getter 我知道 Eclipse Netbeans 会在您告诉它时执行此操作 然而 源代码最好只包含框架并让 Maven 或其他工具生成重复的内容
  • 如何在 Bash 中对数组进行排序

    我在 Bash 中有一个数组 例如 array a c b f 3 5 我需要对数组进行排序 不仅仅是以排序的方式显示内容 而是获取包含排序后的元素的新数组 新的排序数组可以是全新的 也可以是旧的 您实际上并不需要那么多代码 IFS n s
  • jQuery 注释/取消注释

    我正在寻找一种使用 jQuery 将元素包装到注释中的方法 例如 还有一种删除评论的方法 这可能吗 要使用注释包装元素 或者更具体地说 用具有该元素 HTML 的注释节点替换元素 my element jq my element comme
  • 为什么 Chrome 和 FireFox 控制台打印“未定义”?

    获取这个简单的测试对象并将其粘贴到控制台中 你会看到它说undefined 该对象正在工作 因为它还打印123 但是什么是undefined about Test var Test new function return get testi
  • 如何使用选择参数从 android 中的 contentprovider 查询特定行

    我已经构建了一个基本的内容提供程序 用于存储用于学习目的的 SMS 消息 到目前为止我可以读取 无需选择参数 插入 更新和删除 然而 我一直在尝试弄清楚如何格式化我的提供程序中 WHERE 子句的选择参数 基本上我的应用程序需要搜索特定的时
  • 如何隐藏 SWT 组合以使其不占用空间?

    我需要隐藏一个组合 以及里面的所有孩子 只需设置setVisible false 将保留组合的空间 Composite outer new Composite parent SWT NONE outer setLayout new Grid