2017-10-10 20 views
-4

静的メインメソッドからvoidメソッドを呼び出そうとしています。ここでは、私が持っているものです。静的メインメソッドからvoidメソッドを呼び出す

public static void main(String[] args){ 
    Scene scene = new Scene(); 
    Animate animate = new animate(); 
    animate(); //I've tried it by itself, but no luck 
} 
public void animate(){ 
    sun.slowMoveHorizontal(5000); 
    moon.slowHorizontal(400); 
} 

誰もが、それははるかに高く評価されるだろう助けることができれば。テキストには、「Sceneオブジェクトを作成する行のすぐ下のメインメソッドでアニメーションを生成するための呼び出しを追加します。それが助けば。

+0

アニメーションをアニメートする=新しいアニメーション(); – melpomene

+0

私はまだ静的コンテキストから非静的な要素を参照することができません。 – Dearerburrito

+0

あなたのメインメソッドの中からメソッド*を呼び出そうとしています。ない 'に'。 – EJP

答えて

0

変更:

public void animate(){ 

へ:

public static void animate(){ 

あなたは、静的なものから非静的メソッドを呼び出すようにしようとしています。


animate()は、インスタンスメンバの場合は、オブジェクトをインスタンス化し、そのオブジェクトからanimate()を呼び出す:Animateを想定し

public static void main(String[] args){ 
    Animation a = new Animation(); 
    a.animate(); 
} 
+0

私の変数 "sun"と "moon"はコンテキスト外であるため、静的ではありません – Dearerburrito

+0

animate()がクラスの一部である場合、オブジェクトをインスタンス化し、そのオブジェクトからanimate()を呼び出します。 animate()がmain()と並んで存在するメソッドの場合は、静的として設定します。 – user3437460

+0

私はそれをインスタンス化するとき、私はまだ "シンボルクラスのアニメーションを見つけることができません"を取得します – Dearerburrito

2

は、適切なクラスである、あなたは実際のインスタンスにインスタンスメソッドを呼び出す必要があります。

たとえば、

Animate a = new Animate(); 
a.animate(); 

それ以外の場合は、Sceneクラスを確認してください。あなたはそれをアニメ化するはずですか?

+0

私はお詫びしますが、私がすると、 "Animate"と "Animate()"はシンボルとして見つけることができません。 – Dearerburrito

+1

@Dearerburritoそれはあなたが投稿したコードにも問題がありました。あなたはあなたの質問でそれを言及しなかった。 – EJP

+1

@Dear [mcve]なしであなたのコードを推測することはできません –