簡體   English   中英

Java Swing:在BorderLayout上更改邊框寬度/高度

[英]Java Swing: Changing border width/height on BorderLayout

我是Java Swing的新手。 我正在嘗試制作一個包含三個按鈕的框架; 一個在中心,另一個在頂部,最后一個在右邊。 我想讓NORTH和EAST邊框的寬度相同。 但是現在,東部邊界比北部邊界寬。

我想知道在BorderLayout中是否有辦法改變WEST / EAST邊界的寬度或NORTH / SOUTH邊界的高度。

假設您已經在使用BorderLayout,您可以使用面板來控制框架的布局並創建邊框感。 然后,您可以使用setPreferredSize(new Dimension(int,int))請求首選大小,其中(int,int)分別是width和height。 邊框的代碼看起來像這樣:

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

閱讀文檔怎么樣?

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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM