Итак, у меня есть свои ярлыки и все, но у меня все еще есть проблемы с форматированием и выравниванием всего. Очевидно, что кнопка расчета должна быть центрирована. Я понимаю, что использование gridbag разбивает кадр на систему координат, и когда один столбец больше других, он будет настраивать другие и выкидывает его (справа?). Но я не понимаю, как это исправить. И все еще проблема с выравниванием всего слева, чтобы он не начинался к центру.Выравнивание графического интерфейса Java
При компиляции Heres в окно
Вот что я пытаюсь сделать это как, я не добавил все еще.
JPanel p = new JPanel(new GridBagLayout());
GridBagConstraints gc = new GridBagConstraints();
//0 Column
gc.gridx = 0;
gc.gridy = 0;
gc.anchor = GridBagConstraints.EAST;
p.add(new JLabel("Mortgage amount:"),gc);
gc.gridx = 0;
gc.gridy =1;
p.add(new JLabel("Mortgage term:"),gc);
gc.gridx = 0;
gc.gridy = 2;
p.add(new JLabel("Interest rate:"),gc);
gc.gridx = 0;
gc.gridy = 3;
p.add(new JLabel("Mortgage start date:"),gc);
gc.gridx = 0;
gc.gridy= 4;
p.add(new JLabel("Monthly Payments:"),gc);
gc.gridx = 0;
gc.gridy = 7;
p.add(new JLabel("Extra payments"),gc);
gc.gridx = 0;
gc.gridy = 8;
p.add(new JLabel("Adding: "),gc);
gc.gridx = 0;
gc.gridy = 9;
p.add(new JLabel("Adding: "),gc);
gc.gridx = 0;
gc.gridy = 10;
p.add(new JLabel("Adding: "),gc);
gc.gridx = 0;
gc.gridy = 11;
p.add(new JLabel("Changes paid off date to:"),gc);
//1 Column
gc.gridx = 1;
gc.gridy = 0;
p.add(new JLabel("$"),gc);
gc.gridx = 1;
gc.gridy = 4;
p.add(new JLabel("$"),gc);
gc.gridx = 1;
gc.gridy = 8;
p.add(new JLabel("$"),gc);
gc.gridx = 1;
gc.gridy = 9;
p.add(new JLabel("$"),gc);
gc.gridx = 1;
gc.gridy = 10;
p.add(new JLabel("$"),gc);
//2 column
gc.gridx = 2;
gc.gridy = 0;
p.add(new JTextField(8),gc);
gc.gridx = 2;
gc.gridy =1;
p.add(new JTextField(8),gc);
gc.gridx = 2;
gc.gridy = 2;
p.add(new JTextField(8),gc);
gc.gridx = 2;
gc.gridy = 3;
p.add(new JComboBox(month),gc);
gc.gridx= 2;
gc.gridy = 4;
p.add(new JTextField(8),gc);
gc.gridx = 2;
gc.gridy = 8;
p.add(new JTextField(8),gc);
gc.gridx = 2;
gc.gridy = 9;
p.add(new JTextField(8),gc);
gc.gridx = 2;
gc.gridy = 10;
p.add(new JTextField(8),gc);
//3 column
gc.gridx = 3;
gc.gridy = 1;
p.add(new JLabel(" years or "),gc);
gc.gridx = 3;
gc.gridy = 2;
p.add(new JLabel(" % per year"),gc);
gc.gridx = 3;
gc.gridy = 3;
p.add(new JComboBox(days),gc);
gc.gridx = 3;
gc.gridy = 8;
p.add(new JLabel("to your monthly mortgage payment"),gc);
gc.gridx = 3;
gc.gridy = 9;
p.add(new JLabel("as an extra yearly mortgage payment every "),gc);
gc.gridx = 3;
gc.gridy = 10;
p.add(new JLabel("as a one-time payment in "),gc);
//4 column
gc.gridx = 4;
gc.gridy = 1;
p.add(new JTextField(8),gc);
gc.gridx = 4;
gc.gridy=3;
p.add(new JComboBox(years),gc);
//5 column
gc.gridx = 5;
gc.gridy = 1;
p.add(new JLabel(" months"),gc);
gc.gridy=5;
gc.anchor = GridBagConstraints.CENTER;
p.add(new JButton("Calculate"),gc);
add(p, BorderLayout.NORTH);
}
}
1) Для получения более эффективной помощи отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример) или [SSCCE] (http://www.sscce.org/) (Короткий, самосохраненный, правильный пример). 2) Предоставить ASCII-искусство или простой рисунок макета GUI с минимальным размером и, если он изменен, с большей шириной и высотой. –
Честно говоря, рассмотрите возможность использования [MigLayout] (http://www.miglayout.com/). Это намного лучше и проще, чем стандартные раскладки Swing. – Veluria
Держу пари, я могу использовать только swing хотя = /. Ха-ха –