如何在SWT Combo中突出显示文字?

时间:2016-04-22 12:06:41

标签: java combobox swt

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

例如,假设组合文本是" IP:6061"。 我想强调一下" IP"。我怎么能这样做?

enter image description here

3 个答案:

答案 0 :(得分:2)

要选择组合文字的一部分,请使用Combo::setSelection()

例如

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

会选择' IP' of IP:6061'。

答案 1 :(得分:2)

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

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);

答案 2 :(得分:0)

您可能必须使用SELECT COUNT(1) AS A1 FROM dbo.CandidateExperience WHERE CandidateID = 50 AND CandidateExperienceID <> 118 AND -- Good old ID 118 DeletedBy IS NULL AND ( ('2015-04-15 00:00:00' > StartDate AND '2015-04-15 00:00:00' < EndDate) OR ('2015-05-15 00:00:00' > StartDate AND '2015-05-15 00:00:00' < EndDate) OR ('2015-04-15 00:00:00' = StartDate AND '2015-05-15 00:00:00' = EndDate) ) getSelection()的组合。但这个问题很模糊;因此,您可能只需要使用getText()并将字符串过滤为您想要的字符。