заполнить gridbagconstraints не работает должным образом? - PullRequest
0 голосов
/ 15 марта 2019

ячейки х, кроме первой, не будут занимать дополнительное место. Сначала я сосредоточился на попытках исправить части имени, которые теперь работают, но часть с 3 рядами в разделе дня рождения enter image description here должен выглядеть как это

Я не могу определить логическую ошибку здесь, так как я следовал стандарту: установите горизонтальную заливку, установите вес 1, установите ширину сетки и обновите x и y.

    panelMain = new JPanel();
    getContentPane().add(panelMain);
    panelMain.setBackground(Color.WHITE);

    panelForm = new JPanel(new GridBagLayout());
    panelForm.setBackground(formColor);
    panelMain.add(panelForm); 

    GridBagConstraints c = new GridBagConstraints();
    c.fill = GridBagConstraints.HORIZONTAL;
    c.insets = new Insets(0,20,0,20);


    c.gridx = 0;
    c.gridy = 0;
    c.gridwidth = 1;
    lblName = new JLabel("Name");
    panelForm.add(lblName, c);

    c.gridy = 1;
    c.gridwidth = 1;     
    c.weightx = 0.5;
    txfFirst = new JTextField("First");   
    panelForm.add(txfFirst, c);

    c.gridx = 1;
    c.gridwidth = 1;
    c.weightx = 0.5;
    txfLast = new JTextField("Last"); 
    panelForm.add(txfLast, c);

    c.gridwidth = 1;
    c.gridx = 0;
    c.gridy = 2;
    c.weightx = 1;
    lblEmail = new JLabel("Your email address");
    panelForm.add(lblEmail, c);

    c.gridy = 3;
    txfEmail = new JTextField();
    panelForm.add(txfEmail, c);

    c.gridy = 4;       
    lblPw = new JLabel("Create a password");
    panelForm.add(lblPw, c);

    c.gridy = 5;      
    pwfPw = new JPasswordField();
    panelForm.add(pwfPw, c);

    c.gridy = 6;
    lblConf = new JLabel("Confirm your password");
    panelForm.add(lblConf, c);

    c.gridy = 7;
    pwfConf = new JPasswordField();
    panelForm.add(pwfConf, c);

    c.gridy = 8;
    lblBday = new JLabel("Birthday");
    panelForm.add(lblBday, c);

    c.gridy = 9;
    c.gridwidth = 1;
    c.gridx = 0;
    cmbMonth = new JComboBox(months);
    panelForm.add(cmbMonth, c);

    c.gridx = 1;
    c.gridwidth = 1;
    c.weightx = 1;
    txfDay = new JTextField("Day");
    panelForm.add(txfDay, c);

    c.gridx = 2;
    c.gridwidth = 1;
    c.weightx = 1;
    txfYear = new JTextField("Year");
    panelForm.add(txfYear, c);

    c.gridwidth = 1;
    c.gridx = 0;
    c.gridy = 10; 
    lblGend = new JLabel("Gender");
    panelForm.add(lblGend, c);

    c.gridy = 11;
    cmbGend = new JComboBox();
    panelForm.add(cmbGend,c );

    c.gridy = 12;
    lblPhone = new JLabel("Mobile phone");
    panelForm.add(lblPhone, c);

    c.gridy = 13;
    txfPhone = new JTextField();
    panelForm.add(txfPhone, c);

    c.gridy = 14;
    lblLoc = new JLabel("Location");
    panelForm.add(lblLoc, c);
    c.gridy = 15;

    cmbLoc = new JComboBox();
    panelForm.add(cmbLoc, c);
    c.gridy = 16;

    c.gridx = 2;
    btnNext = new JButton("Next Step");
    panelForm.add(btnNext, c);
...