1

我相信我做错了一些简单的事情;我的研究让我无处可去。

我创建了一个独立的 Java 应用程序,我试图将其转换为作为小程序运行。(作为一个小程序是一个要求)。

我创建了一个 JPanel 类 MazePanel,并试图将其显示为一个小程序。当我在 Netbeans 中运行我的 Applet 时,会加载 2 个窗口。一个是空白的 Applet 窗口,另一个是我的 Maze。我希望迷宫(在 MazePanel 中实现)显示在我的小程序中。任何人都可以看看这个,并告诉我我做错了什么。

public class MazeApplet extends JApplet {


protected JFrame frame;
protected JPanel jPanel;
protected MazeBuilder builder;
protected MazeFactory factory;

public MazeApplet() {
    //Set up frame
    frame = new JFrame("Maze -- Builder");
    frame.setLayout(new BorderLayout());

    frame.setVisible(true);
    frame.setResizable((true));

}

public void init() {

    factory = new ShoutMazeFactory();
    builder = new FactoryMazeBuilder(factory);
    Maze maze = MazeGameBuilder.createMaze(builder);
    maze.setCurrentRoom(1);
    jPanel = (new Maze.MazePanel(maze));
//Add jPanel to Frame
    frame.getContentPane().add(jPanel);
    frame.pack();
    }
}

下面是我要显示的 JPanel 类

public class MazePanel extends JPanel{

protected Maze maze = new Maze();
  public void paint(Graphics g) {
Dimension dim = getSize(); 
g.setColor(Color.white);
g.fillRect(0, 0, dim.width, dim.height);    
g.setColor(Color.black);
  maze.draw(g);
  }    
}
4

1 回答 1

0

在小程序中工作时,您无法创建新框架,这是创建框架的原因。

在 init() 块中启动初始面板,然后根据需要使面板可见或不可见。

于 2012-12-15T18:08:54.170 回答