gpt4 book ai didi

java - 如何在 TableViewerColumn 中使用 CheckBoxTableCell

转载 作者:行者123 更新时间:2023-11-29 07:41:25 26 4
gpt4 key购买 nike

我找不到任何在 TableViewerColumn 中使用 CheckBoxTableCell 的示例,如果有人可以为我提供示例实现,我将不胜感激。

我已经有一个显示一些字符串值的工作模型,但我无法将 boolean 值表示为复选框。

是否可以在 TableViewerColumn 中显示除字符串以外的任何其他内容?

最佳答案

这是一个 exampleTableViewerColumn 中有一个复选框。它使用图像来表示单元格中的 boolean 值。

它创建了一个自定义 View ,它扩展了 ViewPart 两个静态字段来保存图像:

Image CHECKED = Activator.getImageDescriptor("icons/checked.gif").createImage();
Image UNCHECKED = Activator.getImageDescriptor("icons/unchecked.gif").createImage();

然后在 createColumns 方法中根据 boolean 值返回其中一张图像:

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;
}
}
});

请检查上面给出的链接以获取更多详细信息。

如果你想要一个可编辑的复选框,你需要创建一个EditingSupport您希望具有复选框的列的对象。

这是一个例子:

public class CheckBoxColumnEditingSupport extends EditingSupport {

private TableViewer tableViewer;

public CheckBoxColumnEditingSupport(TableViewer viewer) {
super(viewer);
this.tableViewer = viewer;
}

@Override
protected CellEditor getCellEditor(Object o) {
return new CheckboxCellEditor(null, SWT.CHECK);
}

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

@Override
protected Object getValue(Object o) {
ORMData ormData = (ORMData) o;
return ormData.isOrmIndicator();
}

@Override
protected void setValue(Object element, Object value) {
ORMData ormData = (ORMData) element;
ormData.setOrmIndicator((Boolean) value);
tableViewer.refresh();
}
}

然后将编辑支持添加到表格中的特定列:

tableViewerColumn.setEditingSupport(new CheckBoxColumnEditingSupport (myTableViewer));

查看此 turotial关于如何使用列编辑支持。还有这篇关于 How to add an editable checkbox at JFace TableViewer 的详细帖子

关于java - 如何在 TableViewerColumn 中使用 CheckBoxTableCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29742640/

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