Java SWT TableCombo禁用所选项目的高亮显示
我正在使用,当我按下下拉按钮时,会显示所有项目的列表。我希望实现当前选定的行在此列表中不突出显示(因为我根据项目类型使用不同的背景色,突出显示隐藏选定项目的背景色)。我曾尝试使用Java SWT TableCombo禁用所选项目的高亮显示,java,swt,highlighting,Java,Swt,Highlighting,我正在使用,当我按下下拉按钮时,会显示所有项目的列表。我希望实现当前选定的行在此列表中不突出显示(因为我根据项目类型使用不同的背景色,突出显示隐藏选定项目的背景色)。我曾尝试使用SWT.NO_FOCUS和SWT.HIDE_SELECTION标志创建表,但它没有删除突出显示。有什么想法吗 我曾试图找到类似swing中的highlighter的东西,但我没有成功我刚刚找到的,这基本上回答了我的问题。对于SWT。操作系统会自动处理完整的选择突出显示-请参阅表.CDDS\u ITEMPOSTPAINT(
SWT.NO_FOCUS
和SWT.HIDE_SELECTION
标志创建表,但它没有删除突出显示。有什么想法吗
我曾试图找到类似swing中的highlighter的东西,但我没有成功我刚刚找到的,这基本上回答了我的问题。对于SWT。操作系统会自动处理完整的选择突出显示-请参阅表.CDDS\u ITEMPOSTPAINT(在Win32上为NMLVCUSTOMDRAW nmcd、int wParam、int lParam)
但是,可以通过样式常量修改此行为。对我来说,正确的解决方案是使用SWT。完整选择
(可以选择整行)和SWT。无焦点
(不使用深蓝色突出显示)和SWT。隐藏选择
(隐藏选定项目的默认灰色背景色)标志
遗憾的是,我刚刚找到的SWT树不支持HIDE\u选择
标志,这基本上回答了我的问题。对于SWT。操作系统会自动处理完整的选择突出显示-请参阅表.CDDS\u ITEMPOSTPAINT(在Win32上为NMLVCUSTOMDRAW nmcd、int wParam、int lParam)
但是,可以通过样式常量修改此行为。对我来说,正确的解决方案是使用SWT。完整选择
(可以选择整行)和SWT。无焦点
(不使用深蓝色突出显示)和SWT。隐藏选择
(隐藏选定项目的默认灰色背景色)标志
遗憾的是,SWT树不支持隐藏\u选择
标志
如中所建议,可以禁用传递给SWT的事件。橡皮擦项
:
table.addListener(SWT.EraseItem, new Listener() {
@Override
public void handleEvent(Event event) {
event.detail &= ~SWT.SELECTED;
}
});
table
是我从JFaceTableViewer
获取的SWT表。无法确定TableCombo
API。如中所建议,可以禁用传递给SWT.EraseItem的事件:
table.addListener(SWT.EraseItem, new Listener() {
@Override
public void handleEvent(Event event) {
event.detail &= ~SWT.SELECTED;
}
});
table
是我从JFaceTableViewer
获取的SWT表。不太清楚TableCombo
API。太好了!不,等等。。它似乎对表
/表查看器
也不起作用。。你真了不起!不,等等。。它似乎对表
/表查看器
也不起作用。。U_