Java JPanel不显示在我的JFrame中,而是显示在新窗口中
我相信我做了一些简单的错误;我的研究让我无从下手 我创建了一个独立的Java应用程序,我正试图将其转换为作为小程序运行。作为一个小程序是一项要求 我创建了一个JPanel类MazePanel,并试图将其显示为小程序。当我在Netbeans中运行小程序时,会加载两个窗口。一个是空白的小程序窗口,另一个是我的迷宫。我希望在MazePanel中实现的迷宫显示在我的小程序中。谁能看看这个,告诉我我做错了什么Java JPanel不显示在我的JFrame中,而是显示在新窗口中,java,swing,jframe,jpanel,japplet,Java,Swing,Jframe,Jpanel,Japplet,我相信我做了一些简单的错误;我的研究让我无从下手 我创建了一个独立的Java应用程序,我正试图将其转换为作为小程序运行。作为一个小程序是一项要求 我创建了一个JPanel类MazePanel,并试图将其显示为小程序。当我在Netbeans中运行小程序时,会加载两个窗口。一个是空白的小程序窗口,另一个是我的迷宫。我希望在MazePanel中实现的迷宫显示在我的小程序中。谁能看看这个,告诉我我做错了什么 public class MazeApplet extends JApplet { prot
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;作为一个小程序是一项要求。为什么?如果是一个小程序,它自由地漂浮在浏览器窗口外的桌面上,这是否满足要求?在小程序中工作时,您无法创建新框架。。你当然可以。这样做通常没有意义,但这是可能的。