Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SWT TableCombo禁用所选项目的高亮显示_Java_Swt_Highlighting - Fatal编程技术网

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
是我从JFace
TableViewer
获取的SWT表。无法确定
TableCombo
API。

如中所建议,可以禁用传递给
SWT.EraseItem的事件:

table.addListener(SWT.EraseItem, new Listener() {   
    @Override
    public void handleEvent(Event event) {
        event.detail &= ~SWT.SELECTED;
    }
});

table
是我从JFace
TableViewer
获取的SWT表。不太清楚
TableCombo
API。

太好了!不,等等。。它似乎对
/
表查看器
也不起作用。。你真了不起!不,等等。。它似乎对
/
表查看器
也不起作用。。U_