我是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