gpt4 book ai didi

java - 如何为选定行着色 TableViewer Java

转载 作者:行者123 更新时间:2023-12-01 12:33:41 24 4
gpt4 key购买 nike

我有一个表格查看器,并且创建了一个上下文菜单,现在右键单击该行,我可以选择:为所选行着色。菜单命令链接到我的插件项目中的一个类。我想选择该行,然后右键单击并单击上下文菜单选项:为所选行着色,然后使用此命令为该行的每个单元格中包含的所有文本着色,例如红色。

  public class ShowSelected extends AbstractHandler {

@SuppressWarnings("unchecked")
public Object execute(ExecutionEvent event) throws ExecutionException {




//here should be my piece of code



return null;
}
}

如何选择行并为该行的每个单元格中的文本着色?我每行有 5 个单元格。

最佳答案

选择一行:

TableViewer viewer = .... get your viewer

RowData rowData = .... get the model row data that you want to select

viewer.setSelection(new StructuredSelection(rowData));

要为行着色,请让您的标签提供程序实现 IColorProvider (除了它实现的其他任何内容之外)。您现在必须实现:

@Override
public Color getForeground(Object element)
{
// TODO return foreground color or null
}

@Override
public Color getBackground(Object element)
{
// TODO return background color or null
}

element 参数是需要颜色的模型行数据。

您可以使用以下方法让表查看器向标签提供程序请求更新的颜色:

viewer.update(rowData);

关于Color的注释 - 您创建的任何Color对象在不再需要时都必须被丢弃。您应该尽量减少创建的 Color 对象的数量。

如果您使用的是ColumnLabelProvider,那么它已经实现了IColorProvider,因此您只需要覆盖getForeground/getBackground 。例如:

@Override
public Color getForeground(Object element)
{
RowData rowData = (RowData)element;

// TODO if rowData should have a color return it, otherwise return null
}

关于java - 如何为选定行着色 TableViewer Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25742692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com