Come faccio a fare una parola specifica (variabile) in una finestra di messaggio in grassetto in Java?
-
19-09-2019 - |
Domanda
Sto cercando di fare una sola parola (variabile) di una finestra di messaggio in grassetto nel mio programma Java. Ecco il mio codice:
int n = messageBox.showConfirmDialog(frame,
"The File "+ file +" already exists." +
"\n" + "Do you want to replace it?",
"File Already Exists!",
messageBox.YES_NO_OPTION);
Voglio fare il "file" variabile appare in grassetto nella mia casella di messaggio. Finora sono stato in grado di ottenere l'intera finestra di messaggio a comparire in grassetto, o nessuno di esso a tutti solo. Come posso fare questo?
Soluzione
Prova avvolgendo il testo in tag HTML. Molti dei componenti Swing supporta il linguaggio HTML di base come ad esempio corsivo, grassetto e sottolineato. Ad esempio, è necessario modificare il codice per leggere:
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);
Altri suggerimenti
Uso di HTML funziona bene per me. Il problema è che il font di default è già grassetto in modo che non si vede un diverso.
Prova ad utilizzare un tag "italic" o forse un tag "font" e specificare un colore diverso per vedere la differenza.
O invece di passare in una stringa di testo, è possibile passare nel proprio JLabel con un carattere personalizzato. Qualcosa di simile:
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);