Problemas em centralizar texto de um custom item

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.

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

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.

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.

ninguem sabe?

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);