ColumLabelProvider中的getImage不再处理异常

时间:2013-04-19 08:17:50

标签: java swt eclipse-rcp jface

我知道还有其他一些主题在SWT上讨论No More Handles错误,例如SWT No More Handles

但是,当我使用ColumnLabelProvider TableViewer使用ColumnLabelProvider.getImage()方法为表的每个列提供图像时,我遇到了一个问题。

当我加载包含大量数据的表(例如,8000列)时,会出现问题。

我将不同的图像(在我的情况下只有两个)实例化为包含TableViewer的View类的静态属性,以避免同一图像的8000个实例:

private static Image FAILURE_IMAGE = UIPlugin.imageDescriptorFromPlugin(
        Activator.PLUGIN_ID, "/icons/failure.gif").createImage();

/** {@link Image} used to display a test case as run successfully. */
private static Image OK_IMAGE = UIPlugin.imageDescriptorFromPlugin(
        Activator.PLUGIN_ID, "/icons/ok.gif").createImage();

在ColumnLabelProvider中,我只返回这些图像:

public Image getImage(Object element) {
    if (ok)
        return FAILURE_IMAGE;
    else
        return OK_IMAGE;
}

然而,我得到了No More Handles错误。

我做错了吗?将图像创建为静态字段的代码是坏还是错? SWT不应该能够显示包含8000列图标的表格。

0 个答案:

没有答案