gpt4 book ai didi

Java TableViewer - 在选择时更改单元格图像

转载 作者:行者123 更新时间:2023-12-02 11:26:55 26 4
gpt4 key购买 nike

我遵循了 Vogella 关于 Table Viewer 的教程并使用了其中提供的 StyledCellLabelProvider。它在第三列上创建一个“已选中”或“未选中”图标

    col = createTableViewerColumn(titles[3], bounds[3], 3);
col.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return null;
}

@Override
public Image getImage(Object element) {
if (((Person) element).isMarried()) {
return CHECKED;
} else {
return UNCHECKED;
}
}
});
col.setEditingSupport(new MarriedEditingSupport(viewer));

创建表格时,列图像会相应绘制,但是当用户单击单元格时如何更改图标? (我想模拟一个复选框)

最佳答案

您可以使用基于 CheckboxCellEditorEditingSupport 类来实现此目的:

class MarriedEditingSupport extends EditingSupport
{
private final CheckboxCellEditor _editor;

MarriedEditingSupport(TableViewer viewer)
{
super(viewer);

_editor = new CheckboxCellEditor(viewer.getTable());
}

@Override
protected CellEditor getCellEditor(Object element)
{
return _editor;
}

@Override
protected boolean canEdit(Object element)
{
return true;
}

@Override
protected Object getValue(Object element)
{
return Boolean.valueOf(((Person)element).isMarried());
}

@Override
protected void setValue(Object element, Object value)
{
((Person)element).setMarried(((Boolean)value).booleanValue());

getViewer().update(element, null);
}
}

关于Java TableViewer - 在选择时更改单元格图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49551474/

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