Olá pessoal, alguém poderia me dizer como eu faço para colocar um determinado texto de um JOptionPane em negrito?
Eu fiz assim mas não funcionou:
[code]
String n = "<html><b>" + f.getTitle() + "</html></b>";
JOptionPane.showMessageDialog(null,"O formulário \"" + n + "\" já está aberto.");
[/code]
Para o HTML funcionar, ele tem de ser válido e correto - você abriu mas não fechou o HTML. Além disso, a mensagem TEM DE COMEÇAR com “” senão o Swing não usa HTML. OK?
String mensagem = "<html>"
+ "O formulário "
+ "<i>\""
+ f.getTitle()
+ "\"</i>"
+ " já está aberto."
+ "</html>";
JOptionPane.showMessageDialog(null,mensagem);
(Usei “” em vez de “” porque o look and feel padrão do Java usa já todas as fontes Bold por default, e você não iria enxergar a diferença.)
isso significa que eu não posso deixar apenas uma palavra no meio de uma string em negrito?
Pode sim. É que se você não mudar o Look & Feel no seu programa quando for rodá-lo, ou se você não usar a chamada UIManager.put(“swing.boldMetal”, Boolean.FALSE);
antes de criar qualquer janela, todos os textos irão ficar em negrito, não só uma palavra isolada. Exemplo:
import javax.swing.*;
class Teste {
public static void main (String[] args) {
UIManager.put("swing.boldMetal", Boolean.FALSE); // veja o que isto faz com seu programa
String mensagem = "<html>"
+ "O formulário "
+ "<b>\""
+ "Camarada Rostropovich"
+ "\"</b>"
+ " já está aberto."
+ "</html>";
JOptionPane.showMessageDialog(null,mensagem);
}
}
sim, mas neste caso eu estou usando:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
este comando deixa o systema com a “cara” do SO.
Ok, então não precisa se preocupar com essa história do default que deixa tudo em negrito.
legal cara, deu certo, brigadão.