Estou criando uma tela e nela só funcionam os botões que estão na parte “CENTER” do meu layout porém existem dois botões na parte “NORTH” do meu layout, o de Sair e Editar Dados. por qual motivo isso acontece?
[code] /Layout Manager/
Container telaPainelDeOpcoes = getContentPane();
telaPainelDeOpcoes.setLayout(new BorderLayout());
//Parte NORTH do layout onde ficam as JLabel "Sao Judas" e "Painel de Opções".
JPanel telaPTitle = new JPanel(new BorderLayout());
JPanel telaPTi = new JPanel(new GridLayout(2,2,10,0));
telaPTi.add(lblPainelOpcoes);
telaPTi.add(lblSaoJudas);
telaPTi.add(lblPainelOpcoes);
telaPTi.add(lblEspaco);
telaPTi.add(btnEdtDados);
telaPTi.add(lblEspaco);
telaPTi.add(lblEspaco2);
telaPTi.add(btnSair);
telaPTitle.add(telaPTi, BorderLayout.NORTH);
telaPainelDeOpcoes.add(telaPTitle, BorderLayout.NORTH);
//Fim da parte Norte do Layout.
//Parte CENTER do layout.
JPanel telaOpcoesTipo = new JPanel(new BorderLayout());
JPanel telaOpcoes = new JPanel(new GridLayout(5,1,5,15));
telaOpcoes.add(btnMural);
telaOpcoes.add(btnEscreverSug);
telaOpcoesTipo.add(telaOpcoes, BorderLayout.CENTER);
telaPainelDeOpcoes.add(telaOpcoesTipo, BorderLayout.CENTER);
//Fim da Parte CENTER do Layout
/**********Fim do Layout Manager************/
//Funcionamento dos Botões
btnSair.addActionListener(this);
btnEdtDados.addActionListener(this);
btnMural.addActionListener(this);
btnEscreverSug.addActionListener(this);
Não, eu não sei o que acontece se colocar mais ou menos components que o GridLayout suporta, mas se o problema é da ação do botão não funcionar, poderia ser um conflito no GridLayout, como por exemplo um label (invisível) sobre o botão impedindo a execução.
Provavelmente o seu ActionListener não está tratando a acção quando ela é disparada pelo btnSair ou pelo btnEdtDados.
Dica, não é legal utilizar o mesmo listener para diferentes componentes, salvo quando a ação realizada por todos os componentes for a mesma.
Do jeito que você fez, você vai ter que encher de if-else pra saber qual o botão que foi acionado.
Se você implementar um listener pra cada botão, fica até mais legível:
btnSair.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
// No método abaixo você trata o que tem de ser feito
sair();
}
});
btnEdtDados.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
// No método abaixo você trata o que tem de ser feito
editarDados();
}
});
btnMural.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
// No método abaixo você trata o que tem de ser feito
acionouMural();
}
});
btnEscreverSug.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
// No método abaixo você trata o que tem de ser feito
escreverSug();
}
});