如何更改 JFace table 数据的字体大小
How do I change the font size of JFace table data
我正在使用带有 OwnerDrawLabelProvider 的 Jface table 查看器查看多行,如何更改字体 style/size?
基本上你只需要在 measure
和 paint
方法中获取你想要使用的字体并在事件 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 字体。您也可以创建自己的字体 - 但请务必只创建一次 而不是 每次调用 measure
或 paint
时都创建它。
我正在使用带有 OwnerDrawLabelProvider 的 Jface table 查看器查看多行,如何更改字体 style/size?
基本上你只需要在 measure
和 paint
方法中获取你想要使用的字体并在事件 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 字体。您也可以创建自己的字体 - 但请务必只创建一次 而不是 每次调用 measure
或 paint
时都创建它。