Écrire du html avec Graphics2d
Oliv
-
Oliv -
Oliv -
Bonjour,
Tout est dans le titre... Y a moyen ?
C'est parce que j'ai besoin d'un glyphe disponible uniquement en html, css, js et consorts. Mon JLabel fait l'affaire, mais... J'ai besoin aussi de le faire "pivoter" à 90°. Et là, il faut que mon
J'ai cherchu, j'ai rien vu, j'ai perdu.
À l'aide ? Merci...
Tout est dans le titre... Y a moyen ?
C'est parce que j'ai besoin d'un glyphe disponible uniquement en html, css, js et consorts. Mon JLabel fait l'affaire, mais... J'ai besoin aussi de le faire "pivoter" à 90°. Et là, il faut que mon
JLabelredéfinissent
paintComponentet c'est donc
Graphics2Dqui rend le texte. Seulement il ne le rend pas EN html.
J'ai cherchu, j'ai rien vu, j'ai perdu.
À l'aide ? Merci...
<html>🗜</html>
Configuration: Windows / Chrome 86.0.4240.183
1 réponse
-
Bonjour,
Tu peux regarder la documentation :
How to Use HTML in Swing Components
Remarque : depuis Java 8 c'est JavaFX qui est préconisé pour les clients lourds. AWT et Swing ne sont plus maintenus.-
Je sais comment utiliser html dans les composants (qui le supportent). Le :
<html>🗜</html>
aurait pu te mettre la puce à l'oreille puisque les balises (html) ne sont pas nécessaires ici, seulement dans les composants en question.
Je sais aussi faire pivoter leGraphics
d'un composant.
Ce que je ne sais pas, c'est comment écrire en html AVEC LE GRAPHICS d'un composant, pour pouvoir faire pivoter mon texte html.
Comment obtenir ce que j'aurais aimé pouvoir obtenir simplement avec ça :graphics_2d.drawString("<html> 1F5DC</html>", 2, getHeight() - 2); graphics_2d.rotate(Math.PI / 2.d, getWidth() / 2, getHeight() / 2);
j'ai mis l'espace dans leString
uniquement ici pour montrer le code html.
Pour JavaFX, non, on a déjà eu cette discussion... Mais merci quand même. -
Ok, j"ai un moyen.
J'en avais besoin pour unJButton
mais évidemment ça s"applique aussi à unJPanel
ou même (!?) à unJLabel
qui contiendrait celui qui nous interresse, et qui ne pourraient pas pivoter eux-même en raison de leurs dimensions, comme monJButton
.
private class Display extends JButton { private boolean rotate; private CellRendererPane renderer; private JLabel label; private Display(boolean rotate_) { rotate = rotate_; renderer = new CellRendererPane(); label = new JLabel("<html>🗜</html>");// 1F5DC label.setFont(label.getFont().deriveFont(16.f)); label.setHorizontalAlignment(JLabel.CENTER); label.setVerticalAlignment(JLabel.TOP); add(renderer); } @Override protected void paintComponent(Graphics graphics_) { super.paintComponent(graphics_); Graphics2D g_2d = (Graphics2D)graphics_.create(); try { if(rotate == true) { g_2d.rotate(Math.PI / 2.d, getWidth() / 2, (getHeight() / 2) + 1); } renderer.paintComponent(g_2d, label, this, 0, 0, getWidth(), getHeight()); } finally { g_2d.dispose(); } } } -
-