Не знаю, как вы можете решить проблему с границами, но чтобы исправить ситуацию с макетом, я бы просто использовал springlayout. Springlayout - это просто способ лучше расположить элементы в JPanel. Вы можете узнать больше об этом Java Sun Tutorial
В частности, вы используете его, устанавливая, где вы хотите, чтобы ваши север, юг, запад и восток границы каждого элемента. Чтобы сделать это, вы должны сначала удалить вызовы меток из надстройки, чтобы каждый из них мог быть назван. Так что вместо:
add(new JLabel("Text field:"));
Do:
JLabel myLabelName = new JLabel("Text field:");
add(myLabelName);
Для каждого из ваших элементов (JLabels, JTextAreas и JTextField). Как только это будет сделано, вы можете легко установить макет.
Springlayout layout = new SpringLayout();
setLayout(layout);
Затем для каждого из элементов вам нужно установить любые границы, которые вы хотите. Они должны быть в определенном порядке Юг, Север, Запад, затем Восток. Хотя вам не нужно использовать все четыре границы, если вы не хотите. Вот пример того, как установить вашу первую текстовую область, верхнюю.
layout.putConstraint(SpringLayout.NORTH, FirstTextAreaName, 10, SpringLayout.NORTH, this);
layout.putConstraint(SpringLayout.WEST, FirstTextAreaName, this.getWidth()/2, SpringLayout.WEST, this);
layout.putConstraint(SpringLayout.EAST, FirstTextAreaName, -10, SpringLayout.EAST, this);
Этот пример не устанавливает юг текстовой области, но если вы этого хотите, он должен быть первым. Первая строка устанавливает северную сторону текстовой области на расстоянии 10 пикселей от верхней части. При настройке других областей вместо этого вы называете предыдущую (указанную выше) область и говорите, что она на 10 пикселей южнее предыдущей:
layout.putConstraint(SpringLayout.NORTH, SecondTextAreaName, 10, SpringLayout.SOUTH, FirstTextAreaName);
Вторая строка в приведенном выше примере устанавливает восточную сторону текстовой области, чтобы она начиналась на полпути через главную панель. Последняя, третья строка устанавливает восточную сторону текстовой области в 10 пикселях от восточной стороны главной панели.