Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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 在一个框架中添加多个不同尺寸的面板_Java_Swing_Jpanel_Layout Manager - Fatal编程技术网

Java 在一个框架中添加多个不同尺寸的面板

Java 在一个框架中添加多个不同尺寸的面板,java,swing,jpanel,layout-manager,Java,Swing,Jpanel,Layout Manager,我试图在我的框架中添加更多的面板,但是程序似乎忽略了我添加的第一个面板以外的所有其他面板。我应该如何添加面板 我检查过其他人的问题和答案,但没有一个是我的答案 frame = new JFrame("Hey"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel mid = new JPanel(new GridLayout(7,7)); JPanel top = new JPanel(); frame.add(top)

我试图在我的框架中添加更多的面板,但是程序似乎忽略了我添加的第一个面板以外的所有其他面板。我应该如何添加面板

我检查过其他人的问题和答案,但没有一个是我的答案

frame = new JFrame("Hey");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel mid = new JPanel(new GridLayout(7,7));
JPanel top = new JPanel();

frame.add(top);
frame.add(mid);
frame.pack();
frame.setVisible(true);
程序将忽略“顶部”面板以及我添加到其中的按钮。

来自:

默认内容窗格将设置一个BorderLayout管理器

因此,您应该使用区域将JPanel添加到JFrame的内容窗格中,如下所示:

frame.add(top, BorderLayout.NORTH);
frame.add(mid, BorderLayout.CENTER);
否则,BorderLayout将默认为将所有内容添加到
中心
区域:

为了方便起见,BorderLayout将缺少字符串规范解释为与常量中心相同:

Panel p2 = new Panel();
p2.setLayout(new BorderLayout());
p2.add(new TextArea());  // Same as p.add(new TextArea(), BorderLayout.CENTER);
您将只看到最后添加的JPanel,因为:

每个区域只能包含一个组件