Java 如何在draw2d中为文本加下划线

Java 如何在draw2d中为文本加下划线,java,swt,draw2d,Java,Swt,Draw2d,是否有一种简单的方法可以在draw2d中绘制带下划线的文本,而不必在文本下手动绘制线条?使用带有下划线属性的字体。Darryl's展示了如何创建具有此属性的字体。经过一番研究,Draw2D中似乎不支持带下划线的文本,因为SWT字体是操作系统级别的对象,并且并非SWT支持的所有操作系统都支持带下划线的文本。看起来最好的办法是创建一个手动绘制带下划线文本的方法。也许这是稍后将添加到SWT中的内容 以下是我最终使用的内容(或多或少): 我认为这是针对AWT字体,而不是SWT字体。SWT使用不同的字体类

是否有一种简单的方法可以在draw2d中绘制带下划线的文本,而不必在文本下手动绘制线条?

使用带有下划线属性的字体。Darryl's展示了如何创建具有此属性的字体。

经过一番研究,Draw2D中似乎不支持带下划线的文本,因为SWT字体是操作系统级别的对象,并且并非SWT支持的所有操作系统都支持带下划线的文本。看起来最好的办法是创建一个手动绘制带下划线文本的方法。也许这是稍后将添加到SWT中的内容

以下是我最终使用的内容(或多或少):


我认为这是针对AWT字体,而不是SWT字体。SWT使用不同的字体类。
private void drawUnderlinedText(GC gc, String string, int x, int y)
{
    Point extent = gc.textExtent(string);
    gc.drawText(string, x, y);
    gc.drawLine(x - 1, y + extent.y - 1, x + extent.x - 1, y + extent.y - 1);
}