简单的应用程序无法在Eclipse中编译(带插件)?

时间:2011-01-07 20:56:30

标签: java eclipse blackberry

我的代码实际上与BlackBerry教程中给出的代码完全相同,在Eclipse中存在语法错误。我确定有一些小但我只是没有看到,但我的同事也找不到它。任何想法将不胜感激。谢谢!

代码:

pushScreen(new ABCScreen());

错误:

  

无法进行静态引用   非静态方法pushScreen(屏幕)   来自UiApplication类型

这是完整的来源:

import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.MainScreen;


public class AwesomeBBCalculator extends UiApplication {

    public AwesomeBBCalculator() {
        AwesomeBBCalculator app = new AwesomeBBCalculator();
        app.enterEventDispatcher();
    }

    public static void main(String[] args) {
        pushScreen(new ABCScreen()); // ERROR LINE
    }

}

final class ABCScreen extends MainScreen {
    public ABCScreen() {
        super();

        // add title
        LabelField title = new LabelField("Awesome BlackBerry Calculator",
                LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
        setTitle(title);
    }

    public boolean onClose() {
        Dialog.alert("Thanks for using the Awesome BlackBerry Calculator!\nGoodbye.");
        System.exit(0);
        return true;
    }
}

3 个答案:

答案 0 :(得分:3)

只能在UiApplication的实例中调用pushScreen方法。您正尝试从静态main方法调用它。这不起作用。这样做......

public void foo()
{
    pushScreen(this);
}

public static void main(String[] args)
{
    (new ABCScreen()).foo();
}

答案 1 :(得分:0)

public void class1() {     pushScreen(本); }

public static void main(String [] args) {     (new NewScreen())。class1(); }

答案 2 :(得分:0)

尝试为ABCScreen类创建一个对象,然后使用它,或者您也可以尝试这样做:

UiApplication.getUiApplication()。pushScreen(new ABCScreen());