如何在SWT中向组合框中添加不可选择的分隔符

时间:2011-03-17 13:27:46

标签: combobox swt

我们的应用程序中的组合框应显示固定宽度和非固定宽度的字体名称。我想在它们之间添加一个不可选择的分隔符:

-- Fixed-width fonts --
Courier New
Lucida Console
...
-- Non-fixed-width fonts --
Arial
...

SWT可以吗?

1 个答案:

答案 0 :(得分:0)

简短的回答是否定的。 ComboCCombo都不允许将项目标记为无法选择。

但应该可以实现一个自定义的组合小部件,它可以合理的努力显示不可选择的项目。

如果查看CCombo code,您会看到它不是本机窗口小部件,而是由其他SWT窗口小部件组成。它使用List作为下拉控件来显示项目。

如果您使用ScrolledCompposite作为下拉窗口小部件,则可以在其中放置Label来表示项目。不可选择的项目不需要额外的工作。对于可选项,您可以使用Label的鼠标侦听器在悬停时突出显示它们并处理选择。

如果您打算展示大量项目(无论如何都不应该在组合框中),创建的标签数量可能会对性能产生影响。

或者您可以尝试Nebula TableCombo。可能会调整表格以显示某些项目是不可选择的(使用自定义绘制的项目),并且可以为这些项目选择行为。