Problemas em centralizar texto de um custom item

5 respostas
pedrohms

Olá pessoal, tudo bem?

Estou desenvolvendo uma aplicação e apareceu a necessidade de criar um botão para ela, mas estou com um problema: Não estou conseguindo centralizar o texto do botão. Alguem sabe a formula para centralizacão do texto no botão ?

Fico no aguardo. Obrigado.

5 Respostas

aluisiodsv

Eita. Mas como é seu botão ? É pra web ? Desktop ?

aluisiodsv

Opa, é pra java me. Não tinha visto de qual fórum era.

Mas mesmo assim fica a dica de especificar bem o q vc tem e o q vc quer.

pedrohms

Na verdade é um botão comum mesmo, é que estou com problemas para centralizar o Label dele, e como não tem botão no J2ME estou tendo que fazer na mão mesmo.

pedrohms

ninguem sabe?

araujo921

Olá,

o seu botão tem ícone e texto ou só texto ?

basicamente o que você tem que fazer é especifica qual a coordenada x para centralizar horizontalmente e y para centralizar verticalmente. Centralizar um texto pode se tornar uma ação um pouco complicada, porque você precisa do tamanho da fonte, além do que, no caso da centralização horizontal você também precisa verificar se existe width suficiente no botão para acomodar o texto, e caso não exista width suficiente, você precisará quebrar o texto em linhas. Então a ação de centralizar um texto pode ser um pouco complicada. Mas em enfim, assumindo que você tenha pensado nisso tudo e o que você precisa é somente da coordenada x para renderizar o texto, então você poderia tentar alguma coisa mais ou menos assim no teu método paint:

Font font = graphics.getFont()
int textWidth = font.stringWidth(text);
graphics.drawString(text, (buttonWidth - textWidth) / 2, 0, 0);

Outra forma de se fazer seria você utilizar o ponto de âncora do método drawString. Estou meio enferrujado com o JME, mas se não me engano, o ponto de âncora se relaciona com as coordenadas x e y. Então você também poderia fazer alguma coisa mais ou menos assim:

graphics.drawString(text, buttonWidth / 2, 0, Graphics.HCENTER | Graphics.TOP);
Criado 29 de novembro de 2010
Ultima resposta 6 de dez. de 2010
Respostas 5
Participantes 3