Итак, у меня есть проблема с измененным интервалом между панелями (содержащим JTextAreas
), когда я добавляю панели, смотрите рисунок .: D
Пример
При нажатии кнопки при первом вызове addTextArea()
.Состояние 1 -> состояние 2 на картинке.И проблема в том, что panel_buttons не так близки к недавно добавленному WorkDescription
(JTextArea
).И когда кнопка нажимается несколько раз, расстояние между ними изменяется.
Кнопки делали большой скачок раньше, но с;c.weighty = 0.1 - 0.3
скачок меньше.
// The panel is placed in the center of a JFrame (BorderLayout)
public CONSTRUCTOR {
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
// ...
c.anchor = GridBagConstraints.NORTHWEST;
c.gridx = 0;
c.gridy = 0;
c.weightx = 1;
c.weighty = 1;
c.gridwidth = 1;
c.gridheight = 1;
// this is how everything looks at (first pic) start.
panel.add(panel_buttons, c); // panel_buttons is at the right place
}
Метод, который добавляет новый WorkDescription
, а именно JTextArea
:
public void addTextArea() {
WorkDescription wd = new WorkDescription(); //WorkDescription extends JPanel
panel.remove(panel_buttons);
c.weighty = 0.25; // I've messed around with the weighty alot.
// 0.2-0.25 makes the panel_buttons do the least amout of 'down-jump'
panel.add(wd, c);
if(c.gridy < 3 ) {
c.gridy ++;
c.weighty = 1;
panel.add(panel_buttons, c);
}
panel.revalidate();
panel.repaint();
}