如何在 SWT Combo 中高亮文本?

How to highlight text in SWT Combo?

我想突出显示组合框中的文本 (org.eclipse.swt.widgets.Combo)。

例如,假设组合文本是"IP:6061"。 我想强调 "IP"。我该怎么做?

您可能必须使用 getSelection()getText() 的组合。但是这个问题很模糊;所以您可能只需要使用 getText() 并将字符串过滤为您想要的字符。

要select Combo文本的一部分,使用Combo::setSelection()

例如

combo.setText( "IP:6061" );
combo.setSelection( new Point( 0, 2 ) );

会select'IP:6061'的'IP'。

这是一个可重复使用的解决方案:

private void setSelection(Combo combo, String query)
{
    String comboText = combo.getText();

    int index = comboText.indexOf(query);

    if(index != -1)
        combo.setSelection(new Point(index, index + query.length()));
}

您可以添加一个 else 子句来删除选择,如果您希望在文本中没有匹配项时发生这种情况。

这样称呼它:

Combo combo = ...
combo.setText("IP: 1.1.1.1");
String query = "IP";

setSelection(combo, query);