簡體   English   中英

如何將主類重寫為要從另一個類調用的Public Void方法

[英]How to rewrite main class as a Public Void method to be called from another class

我已經圍繞MonopolyGame.java游戲類編寫了程序,但是-我添加了諸如啟動屏幕等功能; 我想從一個單獨的類(RunFile.java)中調用每個。 如何重寫主類的以下部分,以便可以從RunFile.java調用它。 當我嘗試執行此操作時,出現以下錯誤:

未為MonopolyGame類型定義方法MonopolyGame()

MonopolyGame.java

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

運行文件

public class RunFile{

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

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

您所需要做的就是刪除m.MonopolyGame() 由於它與該類具有相同的名稱,因此它是一個構造函數,因此當您執行MonopolyGame m = new MonopolyGame(); 它在其中運行邏輯,因此您無需再次執行。

如果確實要單獨調用它,則應將方法的名稱更改為除類名之外的其他名稱(並添加一個返回類型,例如void)

您不需要重寫MonopolyGame()類,只需在RunFile類中反映MonopolyGame()主方法即可。

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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM