2017-05-04 37 views
-1

私は学校用のSwingを使って小さなJavaゲームを開発しています。これを押すと「新しいゲームを開始する」ボタンを実装する必要があります。問題は、ゲームはString [] argsから複数のパラメータを受け取りますので、別のクラスの "main"関数(すべてがインスタンス化されています)を呼び出すことはできません。これを行う方法は?プログラム内のJavaプログラムを再起動する方法

+2

からコードを移動しますあなたが構成して樹脂化できるクラスへの 'main'メソッド – MadProgrammer

+0

広い答えは' main'からのそれらの変数で何をするかによって決まります;それらを上書きする... – Makoto

+0

可能な重複[Restart Swing Application](http://stackoverflow.com/questions/9390481/restart-swing-application) –

答えて

0

あなたは確かにです。あなたのアプリケーションの中からmain()と呼んでください。しかし、それは確かにあなたがしたいことではありません。その代わりに、インスタンス化コードを別の関数、おそらくゲームオブジェクトのいくつかの型のコンストラクタに移動してみてください。それで、あなたのアプリケーションの中からmainを呼び出すという予期せぬ結果をまったく伴わずに、何らかの種類のrestart機能の両方から新しいゲームをインスタンス化することができます。

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

あなたがこのコードに関するご質問がありましたら、下記のコメントしてください。

関連する問題