Java 使用GridBagLayout将JDesktopPane添加到JFrame

Java 使用GridBagLayout将JDesktopPane添加到JFrame,java,swing,jframe,jinternalframe,jdesktoppane,Java,Swing,Jframe,Jinternalframe,Jdesktoppane,如何使用GridBagLayout将JDesktopPane添加到JFrame,并设置其高度和宽度。如果我添加包含JInternalFrame的JDesktopPane,我什么也得不到。但是在GridLayout的情况下效果很好,但问题是我无法在其中设置所需的大小,因为GridLayout在添加的每个组件之间分割相等的空间 您可能需要设置GridBagConstraints的填充和重量属性 GridBagConstraints gbc = new GridBagConstraints(); gb

如何使用
GridBagLayout
JDesktopPane
添加到
JFrame
,并设置其高度和宽度。如果我添加包含
JInternalFrame
JDesktopPane
,我什么也得不到。但是在
GridLayout
的情况下效果很好,但问题是我无法在其中设置所需的大小,因为
GridLayout
在添加的每个组件之间分割相等的空间

您可能需要设置
GridBagConstraints
的填充和重量属性

GridBagConstraints gbc = new GridBagConstraints();
gbc.weightx = 1;
gbc.weighty = 1;
gbc.fill = GridBagConstraints.BOTH;
这将导致组件想要推到容器的极限,并导致组件在网格中填充其单元格

这将覆盖零部件的首选尺寸(大多数情况下)


查看更多详细信息…

当我尝试添加另一个组件时,它只是位于第一个组件的顶部。什么会导致这样的问题。我已经在代码中清楚地提到了gridx和gridy约束。您可能还需要提供
gridx
gridy
属性。我已经提供了这些属性。对于第一个组件,gridx=0和gridy=0;对于第二个组件,gridx=1和gridy=0。如果没有a,我就没有更多的建议了