未在 ListViewer 上调用 labelprovider getImage

发布于 2024-11-15 09:52:53 字数 939 浏览 3 评论 0原文

我有一个带有自定义 LabelProvider 的 ListViewer。 getText 部分工作正常,但 LabelProvider 的 getImage 方法永远不会被调用。

我还尝试使用 DecoratedLabelProvider 但这也不起作用。

class RadioLabelProvider extends LabelProvider{

    Display d;
    public RadioLabelProvider(Display d)
    {
        this.d = d;
    }

    @Override
    public Image getImage(Object element)
    {
        Image image = d.getSystemImage(SWT.ICON_INFORMATION);
        return image;
    }

    @Override
    public String getText(Object element)
    {
        RadioElement re = (RadioElement) element;
        return re.getIP();
    }
}

用法:

availableDevicesList = new ListViewer(this, SWT.SINGLE | SWT.BORDER);
availableDevicesList.setContentProvider(new ArrayContentProvider());
availableDevicesList.setLabelProvider(new RadioLabelProvider(getDisplay()));
availableDevicesList.setInput(devices);

我做错了什么?或者ListViewer不支持图片? 谢谢

I have a ListViewer with a custom LabelProvider.
The getText part works fine, but the getImage method of the LabelProvider never gets called.

I also tried to use a DecoratedLabelProvider but this did not work either.

class RadioLabelProvider extends LabelProvider{

    Display d;
    public RadioLabelProvider(Display d)
    {
        this.d = d;
    }

    @Override
    public Image getImage(Object element)
    {
        Image image = d.getSystemImage(SWT.ICON_INFORMATION);
        return image;
    }

    @Override
    public String getText(Object element)
    {
        RadioElement re = (RadioElement) element;
        return re.getIP();
    }
}

Usage:

availableDevicesList = new ListViewer(this, SWT.SINGLE | SWT.BORDER);
availableDevicesList.setContentProvider(new ArrayContentProvider());
availableDevicesList.setLabelProvider(new RadioLabelProvider(getDisplay()));
availableDevicesList.setInput(devices);

What am I doing wrong? Or does the ListViewer not support images?
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

温柔女人霸气范 2024-11-22 09:52:53

我发现在 ListViewers 上 getImage 确实不会被调用。

相反,我使用了带有单列的 TableViewer。 DecoratingLableProvider 也可以工作,因此我可以根据对象状态设置图像。

I found out that on ListViewers getImage really wont get called.

Instead I used a TableViewer with a single column. Also the DecoratingLableProvider works so I can set the image depening on the objects status.

心的位置 2024-11-22 09:52:53

ListViewer 类的 JFace 源头注释中,您会发现 ListViewer 是

基于 SWT List 控件的具体查看器。

请注意,SWT List 控件仅支持显示字符串,显示图标。如果您需要显示项目的图标,请使用 TableViewer

In the JFace source header comment of class ListViewer you find that a ListViewer is

A concrete viewer based on an SWT List control.

and

Note that the SWT List control only supports the display of strings, not icons. If you need to show icons for items, use TableViewer instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文