2017-05-04 67 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 
       } 
      }); 
     } 
    }); 

如果您對這個代碼有任何疑問,請在下面發表評論。