Boa dia a todos!
Estou com um problema em uma aplicação onde preciso fazer uma quebra de linha no texto de um JLabel, de acordo com a largura do painel.
Ou seja, se a palavra ultrapassar o tamanho da largura do painel, ocorre a quebra.
Estou usando o código abaixo, com
para fazer a quebra, mas ele nunca entra no if, pois width do label está dando sempre 0.
Tem alguma maneira de calcular essa largura do label?
Valeu!!
public String ajustaNomeTrack(String texto) {
String auxTxt = "";
JLabel Lbl = new JLabel();
JLabel auxLbl = new JLabel();
int larguraLabel = 0;
String[] array = texto.split(" ");
Lbl.setText(array[0]);
auxLbl.setText(array[0]);
FontMetrics fm = auxLbl.getFontMetrics(auxLbl.getFont()); //É Algo parecido com isso!
for (int i = 1; i < array.length; i++) {
larguraLabel = fm.getHeight() * array[i].length(); //Teria que ser getWidth(), mas não existe!
String txtAnterior = auxLbl.getText();
if (larguraLabel > tamanho) {
Lbl.setText(Lbl.getText() + "<br>" + array[i]);
auxLbl.setText(array[i]);
} else {
Lbl.setText(Lbl.getText() + " " + array[i]);
auxLbl.setText(auxLbl.getText() + " " + array[i]);
}
}
auxTxt = "<html>" + Lbl.getText() + "</html>";
return auxTxt;
}