如何更改 JFace table 数据的字体大小

How do I change the font size of JFace table data

我正在使用带有 OwnerDrawLabelProvider 的 Jface table 查看器查看多行,如何更改字体 style/size?

基本上你只需要在 measurepaint 方法中获取你想要使用的字体并在事件 GC 中设置。

这可能是这样的:

private static final int TEXT_MARGIN = 3;

@Override
protected void measure(Event event, Object element)
{
  String text = ... get the text

  Font font = JFaceResources.getFont(JFaceResources.HEADER_FONT);

  event.gc.setFont(font);

  Point size = event.gc.textExtent(text);

  event.width = size.x + 2 * TEXT_MARGIN;
  event.height = Math.max(event.height, size.y + 2 * TEXT_MARGIN);
}

@Override
protected void paint(Event event, Object element)
{
  String text = ... get the text

  Font font = JFaceResources.getFont(JFaceResources.HEADER_FONT);

  event.gc.setFont(font);

  event.gc.drawText(text, event.x + TEXT_MARGIN, event.y + TEXT_MARGIN, true);
}

我在这里使用 JFaceResources.getFont 来获取一种现有的 JFace 字体。您也可以创建自己的字体 - 但请务必只创建一次 而不是 每次调用 measurepaint 时都创建它。