2017-04-05 20 views
0

メインフレームMonopolyGame.javaゲームクラスで自分のプログラムを書いていますが、スプラッシュスクリーンなどの機能を追加しています。私はこれらをそれぞれ別のクラスの(RunFile.java)から呼びたいと思います。 RunFile.javaから呼び出すことができるように、メインクラスの次の部分を書き直すにはどうすればよいですか。私はこれをしようとすると、私は次のエラーを取得:MonopolyGame.javaメインクラスを別のクラスから呼び出すPublic Voidメソッドとして書き直す方法

The method MonopolyGame() is undefined for the type MonopolyGame

public class MonopolyGame extends JFrame{ 

// PRIVATE STATIC/DECLARATIONS ARE HERE 

public static void main(String[] args) throws Exception { 

{ 
    //THIS IS WHERE I USED TO CALL THE SPLASH SCREEN 

// SplashScreen s = new SplashScreen(8000); 
// s.Splash(); 

     EventQueue.invokeLater(new Runnable() { 

     public void run() { 

      try { 
       MonopolyGame window = new MonopolyGame(); 
       window.frame.setVisible(true); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 


     } 
    }); 


}} 


    /** 
    * Create the application. 
    */ 
public MonopolyGame() 
{ 

    try { 
     initialize(); 
      for(int i = 0; i < 41 ; i++) 
      { 
       properties[i]=new Props(); 
      } 
      setProperties(); 
    } 
    catch (InterruptedException e) 
    { 
     e.printStackTrace(); 
    } 
} 



public void initialize() throws InterruptedException { 
    //REST OF PROGRAM 

RunFile.java

public class RunFile{ 

public static void main(String[] args) 
{ 
SplashScreen s = new SplashScreen(8000); 
s.Splash(); 

MonopolyGame m = new MonopolyGame(); 
m.MonopolyGame(); 
} 
} 

答えて

1

すべてを行う必要が削除されm.MonopolyGame()。それはクラスと同じ名前なので、それはコンストラクターなので、MonopolyGame m = new MonopolyGame();を実行すると、内部でロジックが実行されているので、再度実行する必要はありません。

あなたは別にそれを呼びたいならば、あなたはクラス名以外の何かにメソッドの名前を変更(および、ボイドなどの戻り値の型を追加する)必要があります

0

あなたは(MonopolyGameを書き直す必要はありません。 )クラスでは、MonopolyGame()メインメソッドをRunFileクラスに反映させるだけです。

public class RunFile { 
    public static void main(String[] args) { 
     Class<?> aClass = Class.forName(MonopolyGame.class.getName()); 
     Method meth = aClass.getMethod("main", String[].class); 
     meth.invoke(null, (Object) args); 
    } 
} 
関連する問題