【问题标题】:Change look of close button of CTabFolder更改 CTabFolder 关闭按钮的外观
【发布时间】:2014-09-25 23:01:04
【问题描述】:

我想将关闭按钮的工具提示从“关闭”更改为“删除”,并将“x”替换为另一个图像。我在SWT的代码中找到了对应的地方。

班级CTabFolder:

String _getToolTip(int x, int y) {
    // ...
    if ((showClose || item.getShowClose()) && item.closeRect.contains(x, y)) {
        return SWT.getMessage("SWT_Close"); //$NON-NLS-1$
}

班级CTabFolderRenderer:

void drawClose(GC gc, Rectangle closeRect, int closeImageState) {
    // ...
}

令我遗憾的是,我注意到这两种方法都不能被覆盖。那么真的没有机会满足我的要求吗?这虽然 CTabFolderRenderer 甚至打算被子类化。用户Niranjan 询问了similar question,他显然设法解决了我的一个问题。但是怎么做呢?

【问题讨论】:

  • 您可以执行类似于this 的操作。在这种情况下,您会在左侧看到图标。

标签: java swt


【解决方案1】:

您可以通过调用CTabFolder.setRenderer 来设置要使用的新渲染器而不是CTabFolderRenderer

您的新渲染器可以扩展 CTabFolderRenderer,但由于您无法覆盖 drawClose,因此您必须覆盖 draw 并复制大量代码。

Eclipse 本身使用标签渲染器org.eclipse.e4.ui.workbench.renderers.swt.CTabRendering 来更改某些绘图(但不是关闭按钮)。

因此,与使用更好的基本渲染类相比,这可能需要更多的工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 2017-05-14
    相关资源
    最近更新 更多