2015-04-09 3 views
0

У меня есть JPanel с JLabel, JTextField и еще один JPanel с JLabel в нем.Swing GridBagLayout - проблема выравнивания

createDomainPanel = new JPanel(new GridBagLayout()); 
    GridBagConstraints gbc = new GridBagConstraints(); 
    //createDomainPanel.setSize(600, 300); 
    gbc.fill=GridBagConstraints.HORIZONTAL; 


    gbc.gridx=0; 
    gbc.gridy=0; 
    createDomainPanel.add(new JLabel("Enter the name of the domain"), gbc); 

    gbc.gridx=0; 
    gbc.gridy=1;   
    createDomainPanel.add(domainName, gbc); 

    JPanel result = new JPanel(new FlowLayout()); 
    result.add(successMessage); 
    gbc.anchor=GridBagConstraints.LAST_LINE_START; 
    gbc.gridx=0; 
    gbc.gridy=2; 
    createDomainPanel.add(result); 

Последний результат JLabel печатает сообщение об успешном завершении после определенной операции.

public void actionPerformed(ActionEvent e) { 
     SimpleDbConnect dbc = new SimpleDbConnect(); 
     String name = ""; 
     if (e.getSource()==domainName){ 
      name=e.getActionCommand(); 
      boolean success = dbc.addDomain(name); 
      if (success){ 
       successMessage.setText("Domain "+ name + " added successfully"); 
      } 
     } 

    } 

Однако проблема в том, когда я получаю ответ успеха, сообщение успеха вместо того, чтобы в нижней части справа от первого JLabel появляется. Я довольно новичок в Swings. Может кто-нибудь мне помочь?

enter image description here

+1

Похоже, вы просто забыли использовать 'gbc' в createDomainPanel.add (результат)' '. –

+0

Чтобы лучше помочь, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример) или [SSCCE] (http://www.sscce.org/) (Short, Self Содержащийся, правильный пример). –

+0

Спасибо @DanGetz. Это была одна из самых глупых ошибок, которые я совершил. –

ответ

2

Вы забыли передать ограничения при добавлении result сек панели

createDomainPanel.add(result, gbc); 
+0

Теперь я просто чувствую себя глупо. Не могу поверить, что я этого не видел. –

+0

Вы не представляете, сколько раз я сам это сделал;) – MadProgrammer

Смежные вопросы