2011-01-07 15 views
0

私のコードは、BlackBerryのチュートリアルで提供されているコードと実質的に同じですが、Eclipseに構文エラーがあります。私は確かにいくつかの小さなが、私は見ていないが、私の同僚もそれを見つけることができませんでした。どんなアイデアも大歓迎です。ありがとう!Eclipseで簡単なアプリケーションがコンパイルされない(プラグイン付き)

コード:

pushScreen(new ABCScreen()); 

がエラー:

Cannot make a static reference to the non-static method pushScreen(Screen) from the type 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

pushScreenメソッドはのみのUIApplicationのインスタンス内で呼び出すことができます。静的なメインメソッドから呼び出そうとしています。それは動作しません。この代わりに...

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

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

公共ボイドのClass1(){ pushScreen(これ)を行います。 }

パブリック静的無効メイン(文字列[] args){ (新しいNewScreen())クラス1()。

}
0

ABCScreenクラスのオブジェクトを作成しようとすると、それを使用するか、またはUはまた、これを試すことができる:。

UiApplication.getUiApplication()pushScreen(新しいABCScreen())。