Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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 黑莓API/MenuItems_Java_Eclipse_Blackberry_Menuitem - Fatal编程技术网

Java 黑莓API/MenuItems

Java 黑莓API/MenuItems,java,eclipse,blackberry,menuitem,Java,Eclipse,Blackberry,Menuitem,我只是在学习blackbery API,试图遵循blackberry开发网站上的教程,我有点困惑。在界面教程中,他们给出了以下制作菜单项的说明 private MenuItem _changeCapitol = new MenuItem("Change Capitol", 110, 10) { public void run() { if (displayed == 0) _canadaCapitol = _input.getTe

我只是在学习blackbery API,试图遵循blackberry开发网站上的教程,我有点困惑。在界面教程中,他们给出了以下制作菜单项的说明

private MenuItem _changeCapitol = new MenuItem("Change Capitol", 110, 10) 
{ 
    public void run() 
    { 
        if (displayed == 0) 
            _canadaCapitol = _input.getText(); 
        else if (displayed == 1) 
            _ukCapitol = _input.getText(); 
        else if (displayed == 2) 
            _usCapitol = _input.getText(); 
    } 
}; 
这些都是桃色的,现在还有用。问题是用于创建MenuItem的方法已被弃用。所有教程似乎都是针对4.0的。我想学习以正确的方式完成这项工作,所以我选择了6.0API参考。我试图将其转换为当前的方法,但我不能完全正确。这是我来过的最近的一次

private MenuItem _changecapitol = new MenuItem(new StringProvider("Change Capitol"), 110, 10);
changecapitol.setCommand(new Command(CapitolChange()));
class CapitolChange extends CommandHandler
{
    public void execute(ReadOnlyCommandMetadata metadata, Object context)
    {
        if (displayed == 0) 
            _canadaCapitol = _input.getText(); 
        else if (displayed == 1) 
            _ukCapitol = _input.getText(); 
        else if (displayed == 2) 
            _usCapitol = _input.getText();
    }

}
似乎在构造函数的括号内真的应该有一些东西,但我无法想象那可能是什么。如果我正确理解了引用,那么该功能就在CommandHandler中,因此我认为这一部分是正确的。现在的问题是Eclipse在CapitalChange构造函数前面的行上抛出了一个错误

changecapitol.setCommand(new Command(CapitolChange()));

实际上,我在这条线上遇到了多个错误。一个是一个错位的构造错误,另一个声称在“setCommand”之后我需要一个“=”。这在API中不存在,而且在语法上似乎是错误的。我调用的是一个方法,而不是赋值。对吗?不我是不是完全错了

您使用了错误的变量,您创建了带有“\u changecapitol”的菜单项,并将其与此changecapitol一起使用。更正输入错误并检查错误。

我认为编译错误是由于分配命令的位置不正确造成的:

changecapitol.setCommand(new Command(CapitolChange()));
因为它被放置在类声明部分的某个地方,就在MenuItem成员声明之后。
请尝试在其他地方分配命令,可能是在屏幕构造函数中。

很好地抓住了打字错误,但它根本没有改变错误。我仍然会遇到两个错误:令牌上的语法错误、错误放置的构造和令牌“setCommand”上的语法错误,=应在该令牌之后放置,位置根据官方API参考。