ActionPerformed não reconhecido

7 respostas
Suricate_Dimme

Então, estou desenvolvendo uma aplicação aqui e tive de fazer manualmente um botão pois ele aparece depois de feita uma pesquisa. O botão em si é para alterar um cadastro, portanto é preciso pesquisar o cadastro antes. Por isso, não pude criar o ActionPerformed dele com o mouse, daí fiz ele manualmente. O problema é que o NetBeans não reconhece ele, fala que ele não está sendo usado, e de fato quando testo o programa e clico no botão nada acontece, apesar do botão aparecer normalmente.
Tentei registrar esse ActionPerformed da mesma forma que o próprio programa faz no initComponents(), daí ficou assim:

Alterar.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

AlterarActionPerformed(evt);

}

});

Ainda assim não funciona. Dá erro em quase todas as linhas. uaehauehaueahu
Não sei mais o que fazer.

7 Respostas

Anime

Oi,

Cria o botão no netbeans mesmo,deixe ele desabilitado e depois da pesquisa habilite ele… :roll:

Ev3rton

Olá,

Você colocou esse código dentro de um método?

Quando eu preciso adicionar uma ação eu costumo criar o seguinte método e chamá-lo no construtor do formulário:

private void configurarEventos() {
        // Ação para o componente button
        button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // implementação
            }            
        });
    }

[]'s

ViniGodoy

Mostre o resto do código onde você:

  1. Cria esse botão Alterar com o new;
  2. Adiciona esse botão na janela;
Suricate_Dimme

Tentei fazer a primeira resposta, portanto criar a interface e removê-la quando se chama a tela através de um método esconder() que ficou assim:

private void esconder() {

remove(tProd);

remove(tDesc);

remove(tValor);

campoDesc = null;

campoProd = null;

campoValor = null;

}

Mas esse método não está escondendo. Onde estou errando?

Everton, eu tinha criado esses códigos aí mas sem um método chamando eles. Era isso? =/

Os códigos onde eu crio o botão com o new e adiciono ele na janela são esses:

alterarCadastro = new javax.swing.JButton();

alterarCadastro.setBounds(30, 150, 65, 23);

alterarCadastro.setText(Alterar);

add(alterarCadastro);

validate();

repaint();

Mas os botões aparecem corretamente, só não executam.
Se não for pedir demais, gostaria de ser respondido em todas as perguntas. Pois mesmo que eu só vá optar por uma solução, gostaria de saber todas para conhecimento. Afinal, estou aprendendo java.

Obrigado desde já!

Ev3rton

Se você colocou ele em um método (como eu fiz), você tem que chamá-lo para registrar o Listener.

Outra maneira que você poderia usar para que o botão aparecesse somente depois da consulta, seria logo após a chamada do método InitComponents no construtor, você escondesse o componente, assim:

public MeuForm() {
    initComponents();
    button.setVisible(false);
}

Então no final do método que você faz a consulta, você faria o componente aparecer:

public void consultar() {
    // sua implementação...
   button.setVisible(true);
}
Suricate_Dimme

Funcionou. =D
Obrigado mesmo!

ViniGodoy

Suricate, ao postar códigos, siga essas dicas: http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

Criado 12 de fevereiro de 2011
Ultima resposta 13 de fev. de 2011
Respostas 7
Participantes 4