如何在SWT中向下拉列表框添加一个不可选的分隔符

12

我们应用中的一个下拉框需要显示固定宽度和非固定宽度的字体名称。我想在它们之间添加一个无法选择的分隔符:

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

使用SWT可以实现吗?

1个回答

0

简短的答案是否定的。无论是Combo还是CCombo都不允许将项目标记为不可选择。

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

如果您查看CCombo代码,您会发现它不是本地微件,而是由其他SWT微件组成的。它使用一个List作为下拉控件来显示项目。

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

如果您计划显示大量项目(无论如何都不应该在组合框中这么做),创建的标签数可能会影响性能。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接