J'essaie d'ajouter l'accent sur un travail dans un dessin de chaîne im en utilisant Swing.
On m'a conseillé d'utiliser HTML avec le code suivant: P>
Graphics2D g2 = (Graphics2D) g; g.drawString("this is something I want people to <p color="#00FF00">NOTICE</p>", x, y);
6 Réponses :
Si vous créez simplement une étiquette simple en mettant l'accent sur un mot, vous pouvez simplement affecter le code HTML directement sur le jlabel code> comme celui-ci ...
JLabel label = new JLabel("<html>this is something I want people to <span style='color:#00FF00;'>NOTICE</span>");
Excellent edit. Je viens juste de remarquer à quel point cette chaîne est étrange. Il se lit comme une phrase unique, mais le HTML rend le dernier mot dans un nouveau paragraphe.
C'est certainement intéressant @ Andrewthompson, quelque chose qu'un humain peut comprendre simplement, peut être interprété très différemment par un ordinateur qui repose sur une syntaxe spécifique.
@Andrewthompson Voir ma réponse mise à jour pour pourquoi Avis i> est sur sa propre ligne
Je viens de mettre à niveau 'bon édition' à "Excellent edit". L'utilisation d'un span code> il a plus de sens.
Utilisez Graphiques.setcolor () pour changer la couleur de tout ce que vous faites. Ou utilisez un jlabel code> pour définir la couleur sur. P>
Utilisez un p>
La chaîne implique que p> jlabel code> pour le texte de style. Voir Labendertest pour la façon dont il peut être dessiné à une image et utilisé dans la peinture. P>
Utilisation de
Graphiques CODE> / AWT METHODES H2>
AVIS code> doit être vert, mais le reste par défaut (noir). Nous devrions appeler
cordon (chaîne) code> deux fois avec les couleurs des deux parties de la chaîne, compensant la dernière chaîne par la largeur du premier. Pour obtenir la largeur, voir les choses comme
FontMetrics code> ou un
glyphvector code>. Cette réponse utilise un
Glyphvector code> pour obtenir un aperçu des lettres. P>
Salut, merci pour cela .. Cela ressemble un peu plus compliqué pour changer la couleur d'un mot. Est-ce le seul moyen de le faire ou existe-t-il des options simples (je viens de commencer juste à jouer avec la balançoire)
Salut Andrew, je bouge de println () à l'interface graphique et trouvez la transition un peu difficile. Quand j'étais asservi, il y avait une option plus simple que je me demandais s'il y avait quelque chose de moins complexe car je n'ai aucune idée de ce qui se passe dans cette liste massive de code que vous m'avez envoyé. Votre commentaire «embaucher quelqu'un» n'était pas seulement non structuré, mais aussi tout à fait en train de mettre pour quelqu'un qui luttait pour apprendre une nouvelle compétence.
Voir la modification. Je recommande également d'essayer des choses plus simples dans Guis. La peinture personnalisée (en particulier des chaînes) est un sujet avancé.
@Davidkroukamp IT peut être effectué B> sans utiliser de composant de texte de style (voir «AWT EDIT '), mais ce serait beaucoup de farce. Je préfère tirer parti de la capacité de ralentissement de la balançoire pour dessiner du texte de style.
Comment cela compilait-il: avis p>", x, y); code > Comme '"' est un caractère spécial, nous devons nous échapper avec \ em> p> li>
Vous munissez sur graphiques2d mais ne l'utilisez pas (pas pertinent pour le problème, mais peut causer des anomalies). P> LI>
Il devrait être: p> g.Drawstring ("c'est quelque chose que je veux que les gens
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Test {
public Test() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("<html>this is something I want people to <p color=\"#00FF00\">NOTICE</p></html>");
// JLabel label = new JLabel("<html>this is something I want people to <font color=\"#00FF00\">NOTICE</font></html>");//will be shown on single line
frame.add(label);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Test();
}
});
}
}
Bon appel sur les caractères échappés aussi.
Vous pouvez utiliser g.setColor (color.blue) avant G.Drawstring (). (Par exemple couleur.blue) p>
La chaîne implique avis code> doit être vert, mais le reste ..default. Nous devrions appeler
cordon de cordon code> deux fois b> avec les deux couleurs, compensant la dernière chaîne par la largeur du premier.
vous avez raison. Comme je le sais, vous n'avez qu'une solution que de problèmes.
Il inverse la couleur de l'image d'origine et ajoutez du texte en noir. Une autre configuration doit-elle être effectuée pour l'utiliser?
Vous pouvez ajouter g.setcolor (couleur de couleur); puis écrivez la chaîne avec g.Drawstring () peut-être p>
rien de nouveau à au moins une réponse antérieure, est là :-)
Vous devez échapper à vos devis