[RESOLVIDO]Retornar o tamanho em pixels de uma String

5 respostas
D

Galera é o meu primeiro topico no forum, a situação é o seguinte estou desenvolvendo uma agenda eletronica para consultorios medicos como tcc do meu curso tec em informatica,
e eu queria que quando um paciente termina-se a sua consulta, la na agenda passa-se uma linha no seu nome mas somente em seu nome, de ponta a ponta.

Estou utlizando o JSeparator para fazer a linha, dai eu teria que ter em mão o tamanho da string em pixels para poder passar como parametro do metodo setSize() do JSeparator.

Ja testei varios exemplos utilizando a classe java.awt.FontMetrics porem nenhum funcionou comigo.

Alguem teria um exemplo que foi testato, ou uma outra ideia para eu resolver esse problema.

Agradeço desde já.

5 Respostas

ViniGodoy

Não é mais fácil usar uma fonte com sublinhado?

De qualquer forma, o jeito correto de se obter medidas é mesmo com o FontMetrics.
Que tipo de erro está dando?

D

Eu nao queria que fosse sublinhado, queria que a linha passa-se no meio da string.

O erro que esta dando, esta dizendo que a classe fontMetrics é abstrata.

Vini vc nao conhece nenhum outro jeito, ou uma fonte que tenha uma linha no meio dela.

agradeço por ter respondido.

A proposito qual parametro eu tenho que passar no metodo construtor da classe font para ela ficar sublinhada, só para tirar a duvida. :smiley:

ViniGodoy

Mas vc está pedindo o FontMetrics para a classe Graphics?

Veja um exemplo:
http://docs.oracle.com/javase/tutorial/2d/text/measuringtext.html

Realmente não é possível instancia-la diretamente.

Geralmente, os componentes fornecem formas de fornecer HTML para o texto. Nesse caso, você só precisaria colocar o texto entre as tags u.
Caso contrário, você deve usar os TextAttribute para isso.

A opção StrikeThrough passa a linha no meio do texto:

Map<TextAttribute, Object> map = new HashMap<TextAttribute, Object>(); map.put(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON); font = font.deriveFont(map); graphics.setFont(font);

D

Vini deu certo o sublinhado com a tag .

Mas nao consegui retornar o tamanho da string com o exemplo que vc me passo. Esta dizendo que a classe Graphics tambem é abstrata assim como o metodo getFontMetrics(Font fonte)

Eu sei que é pedir demais, mas nao tem um exemplo testado.

Agradeço pela seu atenção e pela resposta.

D

Pocha Vini valeu por me alertar que alguns componentes texto do java aceitam tags de html.

No caso usei a tag: s

Se a linha de baixo desta mensagem tiver uma linha no meio quer diser que da para usar aqui no guj.

Vini valeu mesmo pela sua resposta, realmente eu invejo seu conhecimento. Muito Obrigado.

Criado 13 de maio de 2012
Ultima resposta 13 de mai. de 2012
Respostas 5
Participantes 2