如何在 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);
我想突出显示组合框中的文本 (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);