我已经在主要的 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
RunFile.java
public class RunFile{
public static void main(String[] args)
{
SplashScreen s = new SplashScreen(8000);
s.Splash();
MonopolyGame m = new MonopolyGame();
m.MonopolyGame();
}
}
答案 0 :(得分:1)
您需要做的就是删除m.MonopolyGame()
。由于它与类具有相同的名称,因此它是一个构造函数,因此当您执行MonopolyGame m = new MonopolyGame();
时,它会在其中运行逻辑,因此您无需再次执行此操作。
如果你想单独调用它,你应该将方法的名称改为除classname之外的东西(并添加一个返回类型,如void)
答案 1 :(得分:0)
您不需要重写MonopolyGame()类,只需在RunFile类中反映MonopolyGame()main方法即可。
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);
}
}