Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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保持在顶部?_Java_Swing_Jframe_Jpanel_Gridbaglayout - Fatal编程技术网

Java 如何使动态JPanel保持在顶部?

Java 如何使动态JPanel保持在顶部?,java,swing,jframe,jpanel,gridbaglayout,Java,Swing,Jframe,Jpanel,Gridbaglayout,我使用的是GridBagLayout,而JPanel2似乎总是在JPanel1的中心。在整个程序中,JPanel 2在高度上进行了动态调整,因此我无法使用gbc.insets.top=-15将其固定在顶部;例如,gbc=GridBagConstraints。我试过gbc.anchor=gridbagstraints.PAGE\u START;或gbc.gridheight=3;但他们似乎不像我想的那样 假设JPanel 1和JFrame保持相同的大小,JFrame的大小是不可调整的,我如何才能使

我使用的是GridBagLayout,而JPanel2似乎总是在JPanel1的中心。在整个程序中,JPanel 2在高度上进行了动态调整,因此我无法使用gbc.insets.top=-15将其固定在顶部;例如,gbc=GridBagConstraints。我试过gbc.anchor=gridbagstraints.PAGE\u START;或gbc.gridheight=3;但他们似乎不像我想的那样

假设JPanel 1和JFrame保持相同的大小,JFrame的大小是不可调整的,我如何才能使JPanel 2一直处于顶部,而没有这个间隙

JPanel 2似乎总是处于JPanel的中心位置

那么您似乎正在将panel1添加到panel2,因为GridBagLayout的默认行为是将组件相对于其父组件居中

根据显示的图片,只需在框架上使用默认的边框布局即可。那么你会:

将panel2添加到BorderLayout.LINE_开始 将panel1添加到BorderLayout.CENTER
有关更多信息,请阅读Swing教程中的部分。

gridbaglayout并不支持重叠组件。我建议您尝试使用JLayeredPane的模式层,或者在GridBagLayout中的JPanel上使用CardLayout我正在使用GridBagLayout-在哪里?在镜框上?我没有看到任何设置布局管理器或向框架添加组件的代码。在每一个问题上都贴上一个正确的答案,这样我们就不必猜测你到底在做什么。