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

时间:2017-05-15 20:17:00

标签: jface

我使用带有OwnerDrawLabelProvider的Jface表查看器用于多行行,如何更改字体样式/大小?

1 个答案:

答案 0 :(得分:1)

基本上,您只需要获取要使用的字体,并使用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创建它时,请务必执行此操作。