Предполагая, что вы уже используете 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