我附上了以下Border
图例适用的屏幕截图:
黄色 =JPanel
有BorderLayout
蓝色 =JPanel
有GridBagLayout
紫红色 =JPanel
有FlowLayout
有两个面板没有被颜色遮挡,值得一提:
1) 显示“Primary”字样的标题面板;此面板BorderLayout.NORTH
位于“黄色”面板中。
2) 设备图像所在的图像面板;这个面板是“Fuchsia”的兄弟
“蓝色”BorderLayout.CENTER
位于“黄色”,而“紫红色”和图像面板具有以下约束:
GridBagConstraints c = new GridBagConstraints();
c.weightx = 1.0;
c.weighty = 1.0;
c.gridx = 0;
c.gridy = 0;
c.anchor = GridBagConstraints.NORTHWEST;
c.insets = new Insets(0, 10, 0, 0);
c.fill = GridBagConstraints.BOTH;
//"Blue".add(imagePanel, c);
c.weighty = 0.80;
c.gridy = 1;
c.fill = GridBagConstraints.HORIZONTAL;
//"Blue".add("Fuchsia", c);
正如您可能从图像中看出的那样,我正试图摆脱“紫红色”下方“蓝色”中的“浪费”空间。我似乎无法做到这一点GridBagConstraints
,所以我只是用错了LayoutManager
吗?在我看来,它就像“蓝色”,他只是给每个孩子一半CENTER
的可用空间并保留剩余空间而不是向上收缩。我在这里想念什么?这仅仅是在“Fuchsia”上设置首选或最大尺寸的问题吗?这似乎不会让我到达我想去的地方,因为“紫红色”周围的边框(由我的颜色编码覆盖)是我希望组件结束的地方。BorderLayout
JPanel