2017-05-04 68 views
-1

我正在使用Swing作为学校的一个小型Java游戏,我们需要实现按下“启动新游戏”的按钮。问题是,游戏从String []参数中获取多个参数,所以我不能仅仅从另一个类中调用“main”函数(其中所有东西都是实例化的)。任何方式来做到这一点?如何重新启动程序中的Java程序

+2

从移动代码'main'方法到一个你可以配置和树脂化的类 – MadProgrammer

+0

广泛的答案是它取决于你对'main'中的那些变量所做的事情;它不像他们完全消失*除非你是覆盖它们... – Makoto

+0

可能的重复项[重新启动Swing应用程序](http://stackoverflow.com/questions/9390481/restart-swing-application) –

回答

0

您当然可以可以从您的应用程序内部调用main()。但这当然不是你想要做的。而是尝试将实例化代码移动到另一个函数中,最有可能是某种类型的Game对象的构造函数。然后,您可以从主函数以及某种restart函数中实例化新游戏,而不会在应用程序内调用main的任何意外后果。

0

您可以使用下面的代码来运行程序。除非您的按钮和游戏都在同一个包,一定要导入(这看起来像import packageName.className)

JButton newbutton = new JButton("New"); 
    newbutton.addActionListener(new ActionListener() { 
     public void actionPerformed (ActionEvent e) { 
      EventQueue.invokeLater(new Runnable() { 
       public void run() { 
         new className(); //run the class you want to here 
       } 
      }); 
     } 
    }); 

如果您对这个代码有任何疑问,请在下面发表评论。