Come faccio a fare una parola specifica (variabile) in una finestra di messaggio in grassetto in Java?

StackOverflow https://stackoverflow.com/questions/2440962

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?

È stato utile?

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top