Так. Напишу-ка я собственно всё:

import javax.microedition.lcdui.*;
public class functions implements CommandListener{
// ***********************************
public static functions f;
public static Command com1;
public static Command com2;
public static Display d;
public static Displayable cd;
public static int com;
// ***********************************
public void commandAction(Command c,Displayable d){
if(c==com1) com=1;
else if(c==com2) com=2;
else com=3;
a.a.destroyApp(true); // Это временно воткнул, чтобы узнать, когда же наконец этот метод вызовется!
}
// ***********************************
public static String textbox(String title,int size,int o) throws Exception{
String s=null;
com=0;
TextBox tb=new TextBox(title,"",size,o);
d.setCurrent(tb);
com1=new Command("Ok",Command.OK,1);
com2=new Command("Назад",Command.BACK,2);
tb.addCommand(com1);
tb.addCommand(com2);
tb.setCommandListener(f);
c.repaint();
c.serviceRepaints();
while(com==0) Thread.sleep(80);
if(com==1) s=tb.getString();
d.setCurrent(c);
return s;
}
// ***********************************
}
По моей логике работать это должно так:
Из класса, в котором выполняется основная часть программы будет вызываться метод functions.textbox(), который должен вывести на экран ТекстБокс, ожидать пока пользователь введёт в него что-нибудь, потом нажмёт одну из двух командных клавиш: "Ok" и "Назад". При нажатии "Ok" метод должен возвратить текст, набранный в ТекстБоксе, при нажатии "Назад" метод должен возвратить null. Кроме того ТекстБокс должен переключиться обратно в канвас. Вот. Возможно криво объяснил, так как терминалогия Java у меня до сих пор подхрамывает.