У меня есть 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. Может кто-нибудь мне помочь?
Похоже, вы просто забыли использовать 'gbc' в createDomainPanel.add (результат)' '. –
Чтобы лучше помочь, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример) или [SSCCE] (http://www.sscce.org/) (Short, Self Содержащийся, правильный пример). –
Спасибо @DanGetz. Это была одна из самых глупых ошибок, которые я совершил. –