Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPanel不显示在我的JFrame中,而是显示在新窗口中_Java_Swing_Jframe_Jpanel_Japplet - Fatal编程技术网

Java JPanel不显示在我的JFrame中,而是显示在新窗口中

Java JPanel不显示在我的JFrame中,而是显示在新窗口中,java,swing,jframe,jpanel,japplet,Java,Swing,Jframe,Jpanel,Japplet,我相信我做了一些简单的错误;我的研究让我无从下手 我创建了一个独立的Java应用程序,我正试图将其转换为作为小程序运行。作为一个小程序是一项要求 我创建了一个JPanel类MazePanel,并试图将其显示为小程序。当我在Netbeans中运行小程序时,会加载两个窗口。一个是空白的小程序窗口,另一个是我的迷宫。我希望在MazePanel中实现的迷宫显示在我的小程序中。谁能看看这个,告诉我我做错了什么 public class MazeApplet extends JApplet { prot

我相信我做了一些简单的错误;我的研究让我无从下手

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

我创建了一个JPanel类MazePanel,并试图将其显示为小程序。当我在Netbeans中运行小程序时,会加载两个窗口。一个是空白的小程序窗口,另一个是我的迷宫。我希望在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);
  }    
}

在小程序中工作时,不能创建新框架,这是创建框架的原因


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

如果不需要JFrame,为什么要创建JFrame?将MazePanel添加到MazeApplet。谢谢!啊,这么明显的答案,我错过了!getContentPane.addjPanel;作为一个小程序是一项要求。为什么?如果是一个小程序,它自由地漂浮在浏览器窗口外的桌面上,这是否满足要求?在小程序中工作时,您无法创建新框架。。你当然可以。这样做通常没有意义,但这是可能的。