J'utilise une visionneuse de table Jface avec OwnerDrawLabelProvider pour les lignes multilignes, comment changer le style/la taille de la police?Comment changer la taille de police des données de table JFace
1
A
Répondre
1
Fondamentalement, il suffit d'obtenir la police que vous souhaitez utiliser et définir dans l'événement GC dans les méthodes measure
et paint
.
Cela pourrait être quelque chose comme:
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);
}
J'utilise ici JFaceResources.getFont
pour obtenir une des polices JFace existantes. Vous pouvez également créer votre propre police - mais assurez-vous de le faire seulement une fois faire pas le créer chaque fois measure
ou paint
est appelée.
Pouvez-vous donner un exemple de la façon de créer sa propre police? – user04556
Désolé mais ce n'est pas quelque chose que je fais. S'il s'agit d'un plugin Eclipse, les polices peuvent être définies dans le support CSS ou le point d'extension 'org.eclipse.ui.themes'. Pour une application JFace/SWT simple, regardez les différents constructeurs 'Font'. –