¿Cómo hago una palabra específica (variable) en un cuadro de mensaje en negrita en Java?

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

Pregunta

Estoy tratando de hacer que una palabra (variable) de un cuadro de mensaje en negrita en mi programa Java. Aquí está mi código:

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

Quiero hacer el "archivo" variables aparecen en negrita en mi cuadro de mensaje. Hasta ahora sólo he sido capaz de conseguir todo el cuadro de mensaje para que aparezca en negrita, o ninguna de ella en absoluto. ¿Cómo puedo hacer esto?

¿Fue útil?

Solución

Trate de envolver el texto en las etiquetas HTML. Muchos de los componentes Swing apoyar algo de HTML básico como cursiva, negrita y subrayado. Por ejemplo, usted debe cambiar su código para leer:

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);

Otros consejos

El uso de HTML funciona bien para mí. El problema es que la fuente por defecto ya está en negrita por lo que no ve una diferente.

Trate de usar una etiqueta de "cursiva" o tal vez una etiqueta de "fuente" y especificar un color diferente para ver la diferencia.

O en lugar de pasar en una cadena de texto, puede pasar en su propia JLabel con una fuente personalizada. Algo así como:

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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top