Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java me 在J2ME中,是否有任何方法或属性类似于gotFocus&;的功能;失去对控制的关注_Java Me_Lcdui - Fatal编程技术网

Java me 在J2ME中,是否有任何方法或属性类似于gotFocus&;的功能;失去对控制的关注

Java me 在J2ME中,是否有任何方法或属性类似于gotFocus&;的功能;失去对控制的关注,java-me,lcdui,Java Me,Lcdui,在我的J2ME应用程序中,我想在将焦点放在名为Tones的choicegroup控件上时添加一个播放命令,在失去对choicegroup控件的焦点后,应该删除该命令 我该怎么做 更新: 这是我的密码: import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Focusoncontrol extends MIDlet implements CommandListener {

在我的J2ME应用程序中,我想在将焦点放在名为
Tones的choicegroup控件上时添加一个播放命令,在失去对choicegroup控件的焦点后,应该删除该命令

我该怎么做

更新:

这是我的密码:

 import javax.microedition.midlet.*;

 import javax.microedition.lcdui.*;

 public class Focusoncontrol extends MIDlet implements CommandListener
 {  
    Display disp;

    TextField Text1, Text2, Text3;
    ChoiceGroup Tones;
    Form frm;
    Command Save, Back, Play;

    public Focusoncontrol()
    {
        disp = Display.getDisplay(this);
        frm  = new Form("Focus demo");
        Text1 = new TextField("Text1", "", 20, 0);
        Text2 = new TextField("Text2", "", 20, 0);
        Text3 = new TextField("Text3", "", 20, 0);
        Tones = new ChoiceGroup("Tones", Choice.POPUP, new String[]{"Tone 1", "Tone 2"}, null);
        Save = new Command("Save", Command.SCREEN, 1);
        Back = new Command("Back", Command.EXIT, 3);
        Play = new Command("Play", Command.OK, 2);

        frm.append(Text1);
        frm.append(Text2);
        frm.append(Tones);
        frm.append(Text3);
        frm.addCommand(Save);
        frm.addCommand(Back);
        frm.setCommandListener(this);

        disp.setCurrent(frm);
    }

    public void startApp() 
    {
    }

    public void pauseApp() 
    {
    }

    public void destroyApp(boolean unconditional) 
    {
    }

    public void commandAction(Command c, Displayable d) 
    {
        if(c == Back)
        {
            destroyApp(true);
            notifyDestroyed();
        }
    }
}

在应用程序初始化期间,我没有添加播放命令,因为当铃声(ChoiceGroup控件)获得焦点时,我必须在窗体上添加播放命令,而当ChoiceGroup控件失去焦点时,我必须删除该命令

ChoiceGroup
是一个
对象,要使用您描述的命令,您需要

用于接收已在对象上调用的命令通知的侦听器类型。项目可以有与其关联的
命令。当调用这样的命令时,应用程序将通过在
ItemCommandListener
上调用方法得到通知,该方法已通过调用

要为选项组设置“播放”命令,请使用方法
Item.addCommand(command)


上面的代码可以在调用代码片段中的
disp.setCurrent(frm)
之前编写。

ChoiceGroup
是一个
对象,要使用您描述的命令,您需要

用于接收已在对象上调用的命令通知的侦听器类型。项目可以有与其关联的
命令。当调用这样的命令时,应用程序将通过在
ItemCommandListener
上调用方法得到通知,该方法已通过调用

要为选项组设置“播放”命令,请使用方法
Item.addCommand(command)


上面的代码可以在调用代码片段中的
disp.setCurrent(frm)
之前编写。

您可以发布一些代码,显示您的选择组控件,它所在的容器,以及您如何实现play命令吗?您可以发布一些代码,显示您的选择组控件,它所在的容器,也许你是如何实现播放命令的?@Rahul它应该可以工作-如果操作正确:当
音调获得焦点时,命令应该出现,当它失去焦点时,命令应该消失。什么东西对你不起作用?@gnat嘿gnat。。你的伎俩奏效了。。谢谢你这么好的建议,很抱歉我之前的评论。。。我删除了那条评论。。我希望你不会难过…@Rahul很高兴这有帮助。还有一个建议——考虑将初始化代码从<代码> FooCon控件构造函数转换为 StaspApp/<代码>方法。由于@ RAHUL中解释的原因,它应该工作——如果做得正确:当代码>音调< /代码>得到焦点时,命令将出现,当失去焦点时,该命令就会消失。什么东西对你不起作用?@gnat嘿gnat。。你的伎俩奏效了。。谢谢你这么好的建议,很抱歉我之前的评论。。。我删除了那条评论。。我希望你不会难过…@Rahul很高兴这有帮助。还有一个建议——考虑将原因初始化代码从<代码> FooCon控件构造函数转换为<代码> StestApp方法-原因如下
Tones.addCommand(Play); // add command to item
Tones.setItemCommandListener(/*... define  item cmd listener*/); // set listener