| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/06/2007 10:52:27
|
jschuler
HelloWorld
Membro desde: 25/05/2007 20:05:42
Mensagens: 14
Localização: Rio Grande do Sul
Offline
|
Bom dia colegas.
Estou tentando à algum tempo construir um JLabel dinâmico, alterar seu tamanho de acordo com o texto colocado nele, para que esteja sempre com o tamanho necessário parar mostrar seu conteúdo, sem as reticências.
Meu problema basea-se em descobrir o tamanho ideal, em pixels (altura e largura) para o componente, sendo que o label pode mudar de e conteúdo e fonte em tempo de excecução.
Para resolver isso, busco descobrir como calcular esse tamanho. Mas até agora não tive sucesso.
Alguém já fez algo semelhante, ou teria alguma idéia de como chegar nesse tamanho?
Muito obrigado.
|
Quando todas as alternativas se esgotarem, leia o manual de instruções. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2007 13:55:30
|
jcvijr
JavaChild
![[Avatar]](/images/avatar/af5baf594e9197b43c9f26f17b205e5b.png)
Membro desde: 15/04/2005 17:10:06
Mensagens: 111
Offline
|
Olá,
Eu já consegui obter o tamanho da String de acordo com o texto e a fonte usada por esse texto. Dê uma olhada na classe FontMetrics
Porém, eu usava um Graphics2D para fazer isso. Tente isso:
|
Ah, Java é uma ilha da Indonésia - um designer intrometido
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/06/2007 17:10:49
|
Giuliano Mega
JavaBaby
Membro desde: 22/08/2005 19:01:35
Mensagens: 94
Offline
|
jschuler,
Quem determina o tamanho do componente é o layout manager do container no qual ele foi inserido. Se você usar um BorderLayout, por exemplo, o JLabel não deve mostrar reticências até que o espaço do container pai se esgote (i.e., você vai obter o comportamento "dinâmico" que procura). Portanto, acho que a solução que você procura deve estar mais para o lado de escolher um layout manager adequado.
Se ainda assim você quiser saber o tamanho preferido do JLabel, no entanto, use:
Abraços,
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/06/2007 11:25:52
|
RenataFA
Virtual Machine Man
![[Avatar]](/images/avatar/c05c903e3d997added79518f0e850026.jpg)
Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline
|
Amigo, faço o que vc está querendo.
Numa determinada ocasição eu insiro dinamicamente os JLabels dentro de um JPanel. Em meu JPanel está configurado o layout como "Free Design", ou seja, tô usando o Matisse.
Ai, em tempo de execução eu crio os JLabels e adiciono no JPanel. Para conseguir o que vc quer, ou seja um "JLabel com autosize".. hehehe... basta simplesmente ao criar o JLabel NÃO DEFINIR SEU TAMANHO. Descobri que não definindo o tamanho ele fica um esquema "autosize".
Veja por ex, este JLabel eu tô especificando o tamanho, ele fica com um tamanho fixo na tela:
Já este eu não especifico o tamanho, oque faz com que ele ajuste o tamanho na tela de acordo com seu conteúdo:
Ambos os JLabels estão sendo adicionados no msm JPanel, usando o mesmo layout portanto, e funciona da forma como expliquei.
Boa sorte!
|
[]'s, Renata |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2008 13:37:50
|
geidivan
JavaTeenager
![[Avatar]](/images/avatar/60e6ea8c63d0c5e6b8eecd289c4da78e.jpg)
Membro desde: 11/09/2008 17:07:59
Mensagens: 172
Offline
|
Estava atrás disso, funcionou beleza.
Valeu Renata.
|
Geidivan J. de Brito
|
|
|
 |
|
|
|
|