我是Java Swing的新手。我正在尝试制作一个包含三个按钮的框架;一个在中心,另一个在顶部,最后一个在右边。我想让NORTH和EAST边框的宽度相同。但现在,东边界比北边界宽。Java Swing:在BorderLayout上更改边框宽度/高度
我想知道在BorderLayout中是否有改变WEST/EAST边界宽度或NORTH/SOUTH边界高度的方法。
我是Java Swing的新手。我正在尝试制作一个包含三个按钮的框架;一个在中心,另一个在顶部,最后一个在右边。我想让NORTH和EAST边框的宽度相同。但现在,东边界比北边界宽。Java Swing:在BorderLayout上更改边框宽度/高度
我想知道在BorderLayout中是否有改变WEST/EAST边界宽度或NORTH/SOUTH边界高度的方法。
阅读文档如何?
http://docs.oracle.com/javase/6/docs/api/java/awt/BorderLayout.html#BorderLayout%28int,%20int%29:
构造一个边界布局与组件之间的间隙中指定。 水平间隙由hgap指定,垂直间隙由vgap指定的 。
据我所知,你不能直接设置边界区域的高度/宽度。 您只能指定放置在这些区域内的组件的大小。
但是,如前所述,您可以指定区域之间的差距。
GridBagLayout更灵活,但也更复杂。
建筑平面布置在Swing并不总是那么容易 - 也许用MigLayout(第三方库)将简化你的东西:http://www.miglayout.com/
您已经使用BorderLayout的假设,您可以使用面板来控制布局的框架并创建边框感觉。然后,您可以使用setPreferredSize(new Dimension(int,int))来请求首选大小,其中(int,int)分别是宽度和高度。那么对于边界的代码会是这个样子:
JPanel jLeft = new JPanel();
JPanel jRight = new JPanel();
JPanel jTop = new JPanel();
JPanel jBottom = new JPanel();
add(jLeft, "West");
jLeft.setPreferredSize(new Dimension(40, 480));
add(jRight, "East");
jRight.setPreferredSize(new Dimension(40, 480));
add(jTop, "North");
jTop.setPreferredSize(new Dimension(640, 40));
add(jBottom, "South");
jBottom.setPreferredSize(new Dimension(640, 40));
上面的例子要求所有边框具有相同的厚度,由于东部和西部边框的宽度北部和南部边界的高度匹配。这将是一个大小的帧(640,480)。然后,您可以使用这样的添加按钮框架:
JButton button = new JButton();
jTop.add(button);
button.setPreferredSize(new Dimension(60, 20));
您可以找到了setPreferredSize使用这里的另一个很好的例子:https://stackoverflow.com/a/17027872
*“的东部边界比北方边疆宽” * AFAIU,这是不可能的。发布一个[SSCCE](http://sscce.org/)即可。 – 2012-02-16 18:21:38