Я возился с GridBagLayout. Я понял это несколько, поэтому смог сделать этот макет но мой As-Is не совпадает с моим. вот экраны.
как есть :(
![As-Is :(](https://i.stack.imgur.com/8N89a.png)
![Should Be :s](https://i.stack.imgur.com/q6NhH.png)
Должно быть: s
Я понимаю, что мне нужно немного его настроить, чтобы размер был установлен (setSize()
). Но настоящая хитрость заключается в том, чтобы «Добавить контакт» JLabel
находился в центре вверху.
Жду ваших ответов. Заранее спасибо.
Вот мой код
package SimpleCRUD;
import java.awt.Component;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class ContactListFrame extends JFrame{
JButton Button1, Button2;
JTextField textField1, textField2, textField3;
JLabel label1, label2, label3 , label4;
GridBagLayout layout = new GridBagLayout();
GridBagConstraints Constraint = new GridBagConstraints();
public ContactListFrame() {
super("All Contacts");
Button1 = new JButton("Add");
Button2 = new JButton("Cancel");
textField1 = new JTextField(15);
textField2 = new JTextField(15);
textField3 = new JTextField(15);
label4 = new JLabel("Add Contact");
label4.setFont (new Font("fallan", 1, 25));
label1 = new JLabel("First Name:");
label2 = new JLabel("Last Name:");
label3 = new JLabel("Phone Number:");
setLayout(layout);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setSize(400, 200);
setResizable(false);
Constraint.fill = GridBagConstraints.NONE;
Constraint.anchor = GridBagConstraints.NORTH;
addComponent(label4, 0, 1, 1, 1);
addComponent(textField1, 1, 1, 1, 1);
addComponent(textField2, 2, 1, 1, 1);
addComponent(textField3, 3, 1, 1, 1);
addComponent(label1, 1, 0, 1, 1);
addComponent(label2, 2, 0, 1, 1);
addComponent(label3, 3, 0, 1, 1);
addComponent(Button1, 4, 0, 2, 1);
addComponent(Button2, 4, 1, 2, 1);
}
public void addComponent (Component comp, int row, int col, int width, int height){
Constraint.gridx = col;
Constraint.gridy = row;
Constraint.gridwidth = width;
Constraint.gridheight = height;
layout.setConstraints(comp, Constraint);
add(comp);
}
}