Bonjour,
Je commence à utiliser les API de dessin 2d de java, et j'ai un problème avec la taille des fontes à afficher.
Lorsque j'utilise les méthode drawString, setFont() et un contexte graphique Graphics, j'arrive à faire varier la taille de ma police.
Toutefois lorsque je redéfinis ma méthode paintComponents et que j'utilise un contexte Graphics2d, et les classes pour le formatage des paragraphes telles que LineBreakMeasurer, associées à draw(), la taille de ma police ne varie pas, malgré l'utilisation de setFont().
Voici la partie de mon code qui me pose problème :
Quelqu'un aurait-il une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; Font font = new Font("PMingLiU",Font.PLAIN,60); g2.setFont(font); FontRenderContext frc = g2.getFontRenderContext(); int paragraphStart,paragraphEnd; AttributedString par = new AttributedString(ClStringDisplayed); AttributedCharacterIterator paragraph = par.getIterator(); paragraphStart = paragraph.getBeginIndex(); paragraphEnd = paragraph.getEndIndex(); LineBreakMeasurer lineMeasurer = new LineBreakMeasurer(paragraph, frc); float breakWidth = (float)getSize().width; float drawPosY = 0; lineMeasurer.setPosition(paragraphStart); while (lineMeasurer.getPosition() < paragraphEnd) { TextLayout layout = lineMeasurer.nextLayout(breakWidth); float drawPosX = layout.isLeftToRight() ? 0 : breakWidth - layout.getAdvance(); drawPosY += layout.getAscent(); layout.draw(g2, drawPosX, drawPosY); drawPosY += layout.getDescent() +layout.getLeading(); } }
Merci d'avance !
smilingFrog
++
Partager