Centralizar TextField no Form

quando adiciono textfield ao meu form, eles ficam todos na parte superior, teria como centralizar eles?

obrigado

Infelizmente não tem como usando a API de alto nível. Para criar efeitos mais preciso deve usar API de baixo nível.

desculpe sou leigo “API de baixo nível” seriam bibliotecas de terceiros?

Blz amigo, trata-se da classe Canvas ou GameCanvas.

Para explicar melhor, classe consideradas de baixo nível fazem parte da seguinte hierarquia:
javax.microedition.lcdui.Screen e seus descendentes.
Já as de baixo nível, ou seja, aquelas classes que você tem mais “poder” :lol:
javax.microedition.lcdui.Canvas.

peguei exemplos de canvas, mas nao estou vendo como adicionar o textfield dentro do canvas… qual metodo que chamo?

obrigado desde já pelas ajudas

Em Canvas não tem como adicionar, terias que fazer o componente do zero. Porém a api LWUIT te permite isso, existem componentes prontos, e a forma de trabalhar é da mesma forma do swing. Dá uma olhada, não existem dificuldades em usar esta api. Inclusive esitem menus pronto ect… :lol:

[quote=brunoff]quando adiciono textfield ao meu form, eles ficam todos na parte superior, teria como centralizar eles?

obrigado[/quote]

Faltou vc olhar no javadoc da classe TextField que deriva de Item e diz que é possível através de setLayout.

Se quiser usar o Canvas aqui vai um exemplo:

[code]package principal;

import javax.microedition.midlet.;
import javax.microedition.lcdui.
;

public class TesteCanvas extends MIDlet implements CommandListener {

private MinhaCanvas myCanvas;
private Command saida = new Command(“Exit”, Command.EXIT, 99);

public TesteCanvas() {
myCanvas = new MinhaCanvas();
myCanvas.addCommand(saida);
myCanvas.setCommandListener(this);
}

public void startApp() throws MIDletStateChangeException {
Display.getDisplay(this).setCurrent(myCanvas);
myCanvas.repaint();
}

public void destroyApp(boolean unconditional)
throws MIDletStateChangeException {
}

public void pauseApp() {
}

public void commandAction(Command c, Displayable s) {
if(c == saida) {
try {
destroyApp(false);
notifyDestroyed();
} catch (MIDletStateChangeException ex) {
}
}
}

}

class MinhaCanvas extends Canvas {
private boolean prima = true;
public void paint(Graphics g) {

int larguraTela = getWidth();
int alturaTela = getHeight();

g.setColor(0xffffff);

g.fillRect(0, 0, larguraTela, alturaTela);
if(prima) {
  Font font = g.getFont();
  int alturaDoFont = font.getHeight();
  int larguraDoFont = font.stringWidth("Olá Mundo!");
  g.setColor(255, 0, 0);
  g.setFont(font);
  g.drawString("Olá Mundo!", (larguraTela - larguraDoFont)/2,
   (alturaTela - alturaDoFont)/2,
   Graphics.TOP|Graphics.LEFT);
  prima = false;
}

}

}

[/code]

O que você precisaria é posicionar seu texto com o drawString

Se seu celular aceitar, vai ficar ainda melhor setando o canvas como fullscreen.

Abs

show de bola :smiley: