如何在Java中关闭Jpanel程序

时间:2013-01-12 23:57:52

标签: java swing jpanel

我正在制作Java游戏,我需要一些关于如何做某事的建议。

目前我正在使用2个不同的.java文件来制作游戏。我有一个扩展JFrame的主程序,我调用另一个扩展JPanel的.java文件。

游戏目前有效,但我想为游戏制作另一种模式,我认为如果我为它制作另一个文件会更好。

以下是主文件的所有代码。我删除了所有无用的东西:

import java.awt.*;
import javax.swing.*;

public class ProgramMain extends JFrame  implements KeyListener
{
    private Program mode1;
    private Program2 mode2;

    public ProgramMain ()
    {
        setResizable (false);
        mode1 = new Program ();
        getContentPane ().add (mode1, BorderLayout.CENTER);
        if (mode1.change == true)
        {
            this.remove (mode1);
            board = new Program2 ();
            this.getContentPane ().add (mode2);            
        }
    }

  public void actionPerformed (ActionEvent event)
  {
  }

    public static void main (String[] args)
    {
        GameMain frame = new GameMain ();
        frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        frame.pack ();
        frame.setVisible (true);
    }
}

有没有办法可以重新启动ProgramMain()方法,以便进行另一次检查,所以如果这次if语句变为true,它会更改屏幕并改为打开Program2.java文件。

这是我的主要问题。我不知道如何在.java程序之间切换。如果我希望我的主程序(ProgramMain)读取另一个程序/ .java文件,我该怎么办。

1 个答案:

答案 0 :(得分:0)

要进行切换,您可以在需要切换的框架中执行操作。

ActionListener al = new ActionListener(){
    public void actionPerformed(ActionEvent ae) {
        if (board1) {
            getContentPane().add(gameBoard, BorderLayout.CENTER);
        } else {
            getContentPane().add(gameBoard2, BorderLayout.CENTER);
        }
    }
};
buttonSwitch.addActionListener (al);