Java me 为什么不可能在文本区域内写入文本?

Java me 为什么不可能在文本区域内写入文本?,java-me,lwuit,lwuit-textarea,Java Me,Lwuit,Lwuit Textarea,在我的表单中有一个文本字段、一个列表框和一个文本区域。text区域是最后一项。当通过手机的导航按钮键导航项目时,我看不到文本区域中的光标闪烁,我无法写入文本!虽然我知道光标位于文本区域内,因为前面两项中没有闪烁焦点。代码如下: public class CompteRendu extends Form implements FocusListener, DataChangedListener { private Container x1 = new Container(new BoxLa

在我的
表单中有一个
文本字段
、一个
列表框
和一个
文本区域
text区域是最后一项。当通过手机的导航按钮键导航项目时,我看不到
文本区域中的
光标
闪烁
,我无法写入文本!虽然我知道
光标
位于
文本区域
内,因为前面两项中没有
闪烁
焦点
。代码如下:

public class CompteRendu extends Form implements FocusListener, DataChangedListener {
    private Container x1 = new Container(new BoxLayout(BoxLayout.X_AXIS));
    private Container x2 = new Container(new BoxLayout(BoxLayout.X_AXIS));
    private Container x3 = new Container(new BoxLayout(BoxLayout.X_AXIS));
    private Container x4 = new Container(new BoxLayout(BoxLayout.X_AXIS));
    private Container x5 = new Container(new BoxLayout(BoxLayout.X_AXIS));
    private Container CntnrYforAll = new Container(new BoxLayout(BoxLayout.Y_AXIS));
    private Label dateL, lieuL, dossier, client, resultat;
    private Label dateData, dossierData, clientData;
    private TextField lieu;
    private int nbVKBshow;
    private ListBox resultatList;
    private TextArea compteRendu;
    public CompteRendu(boolean general)
    {
        super();
        if (general)
            setTitle("Compte rendu général");
        dateL       = new FicheLibelle("Date");
        lieuL       = new FicheLibelle("Lieu");
        dossier     = new FicheLibelle("Dossier");
        client      = new FicheLibelle("Client");
        resultat    = new FicheLibelle("Résultat");
        dateL.setPreferredW(Comparator.max(new int[]{dateL.getPreferredW(),lieuL.getPreferredW(),dossier.getPreferredW(),client.getPreferredW(),resultat.getPreferredW()}));
        lieuL.setPreferredW(Comparator.max(new int[]{dateL.getPreferredW(),lieuL.getPreferredW(),dossier.getPreferredW(),client.getPreferredW(),resultat.getPreferredW()}));
        dossier.setPreferredW(Comparator.max(new int[]{dateL.getPreferredW(),lieuL.getPreferredW(),dossier.getPreferredW(),client.getPreferredW(),resultat.getPreferredW()}));
        client.setPreferredW(Comparator.max(new int[]{dateL.getPreferredW(),lieuL.getPreferredW(),dossier.getPreferredW(),client.getPreferredW(),resultat.getPreferredW()}));
        resultat.setPreferredW(Comparator.max(new int[]{dateL.getPreferredW(),lieuL.getPreferredW(),dossier.getPreferredW(),client.getPreferredW(),resultat.getPreferredW()}));
        dateData    = new Label(Formatage.dateToStringHH24(new Date()));
        dossierData = new Label();
        clientData  = new Label();
        lieu        = new ChpModif(100, this, this, null);
        resultatList = new ListBox(new String[]{"Oui","Non"},lieu.getPreferredH(),getPreferredW(),getPreferredH(),lieu.getSelectedStyle().getMargin(Component.TOP),lieu.getSelectedStyle().getMargin(Component.BOTTOM));
        compteRendu = new TextArea(5, 100);
        compteRendu.setGrowByContent(true);
        compteRendu.setFocusable(true);
        compteRendu.setEditable(true);
        x1.addComponent(dateL);
        x1.addComponent(dateData);
        x2.addComponent(lieuL);
        x2.addComponent(lieu);
        if (!general)
        {

        }
        x5.addComponent(resultat);
        x5.addComponent(resultatList);
        CntnrYforAll.addComponent(x1);
        CntnrYforAll.addComponent(x2);
        if (!general)
        {

        }
        CntnrYforAll.addComponent(x5);
        CntnrYforAll.addComponent(compteRendu);
        setLayout(new FlowLayout(Component.CENTER));
        addComponent(CntnrYforAll);
    }

那么,当导航到文本区域时,如何使光标可见并允许写入文本?

您不能这样做。您必须使用LWUIT文本字段。看看这个:


正确。为了澄清,LWUIT有一个多行文本字段,以LWUIT 1.5开头