2010-03-14 8 views
1

J'essaie de faire un mot (variable) d'une boîte de message en gras dans mon programme Java. Voici mon code:Comment faire un mot spécifique (variable) dans une boîte de message en gras dans Java?

int n = messageBox.showConfirmDialog(frame, 
"The File "+ file +" already exists." + 
"\n" + "Do you want to replace it?", 
"File Already Exists!", 
messageBox.YES_NO_OPTION); 

Je veux que la variable "fichier" apparaisse en gras dans ma boîte de message. Jusqu'à présent, j'ai seulement réussi à faire apparaître toute la boîte de message en gras, ou rien du tout. Comment puis-je faire cela?

Répondre

1

Essayez d'envelopper votre texte dans les balises html. La plupart des composants swing prennent en charge du HTML de base tel que l'italique, le gras et le soulignement. Par exemple, vous devriez changer votre code pour lire:

int n = messageBox.showConfirmDialog(frame, 
"<html>The File <b>"+ file +"</b> already exists." + 
"\n" + "Do you want to replace it?</html>", 
"File Already Exists!", 
messageBox.YES_NO_OPTION); 
+0

Bonne idée, mais cela ne fonctionne pas ici, même avec javax.swing.text.html.HTML.Tag importé. – ubiquibacon

+0

Quel SE/JRE utilisez-vous? Cette déclaration fonctionne pour moi (sur Vista/JRE 1.6_u13). – Ash

+0

Mon système d'exploitation est W7X64. J'ai JDK 1.6.0_17 installé à la fois pour 32 et 64 bits et (qui viennent avec leurs versions respectives de JRE 1.6.0_17). J'utilise NetBeans et il s'appuie sur le JDK et le JRE 32 bits. – ubiquibacon

3

L'utilisation du HTML fonctionne bien pour moi. Le problème est que la police par défaut est déjà en gras, donc vous ne voyez pas un autre. Essayez d'utiliser une balise «italique» ou peut-être une balise «police» et spécifiez une couleur différente pour voir la différence. Ou au lieu de transmettre une chaîne de caractères, vous pouvez transmettre votre propre JLabel avec une police personnalisée. Quelque chose comme:

String message = "<html>The File <b> file </b> already exists</html>"; 
JLabel label = new JLabel(message); 
label.setFont(UIManager.getFont("TextField.font")); 

int result = JOptionPane.showConfirmDialog(
    this, 
    label, 
    "File already exists!", 
    JOptionPane.YES_NO_OPTION); 
+0

Haha, bonne prise! Je n'ai même pas réalisé que le texte était déjà en gras! Merci tout le monde! – ubiquibacon

+0

J'ai donc résolu votre problème et vous acceptez l'autre réponse? – camickr

+0

Techniquement, l'autre gars a résolu mon problème, je ne savais pas que le texte était déjà en gras. Si je pouvais accepter les deux réponses, je le ferais. Puisque tu te soucies tellement des points, je me souviendrai de toi et quand j'aurai assez de points à donner, tu pourras en avoir autant que tu veux ... Je pense que tu dois attendre jusqu'à 50 (sauf si tu connais un autre moyen). Merci de votre aide. – ubiquibacon