ActionListener - não sei o que está errado

4 respostas
A

Olá. Uma pergunta bem básica:

Sou iniciante em Java. Estou utilizando o JE no Windows para o meu aprendizado. Utilizo o Swing para a criação de botoes, etc.
  Quando coloco:
public class <nome da classe> extends JFrame

{

// Corpo do programa

}

Beleza! Consigo colocar os botões bem certinhos,…

Agora quando quero associar um evento ao botão, utilizo:

public class <nome da classe> extends JFrame implements     ActionListener

{

// Corpo do programa

}

Só que aí o JE dá erro. Ele não reconhece o ActionListener.
Pergunta: Será que é por que o exemplo que eu peguei é para Linux? Acho que não, porque a filosofia do Java eh a portabilidade.
Será que falta alguma coisa? Nesse caso, qual o programa ideal?

Desculpem a pergunta besta, pessoal.

Alessandro.

[size=“18”][/size]

4 Respostas

L

Vc deve estar querendo colocar os ActionListeners para os botões...

Tente da seguinte forma, aí vai o exemplo:

btDisc.addActionListener(new ActionListener() {
			//ActionListener via anonymous class
					
			public void actionPerformed(ActionEvent e){
				// Mostra no console que o usuario clicou em desconectar;
				System.out.println("Clicou no botao Desconectar");	
				if(usrLogin.equals("")) return;			
				
				//Envia comando USER e PASSOWORD via socket para o servidor.
				String tempUsr = enviaServ("USER ");
				System.out.println("Enviou dados para o servidor; retornou: " + tempUsr);
				usrLogin="";
			}
		});

btDisc é um JButton.

[]'s

A

Olha, cara… agradeço, mas naum deu certo. O Java Editor informa que o meu Frame não herda as características do ActionListener. Por isso o meu exemplo não funciona e nem o seu… Acho que talvez eu tenha deixado de instalar alguma coisa…

Meu fonte completo é esse:

// Este naum está funcionando…

import java.awt.<em>;

import java.awt.event.</em>;

import javax.swing.*;

public class TesteAction extends JFrame implements ActionListener
{

JButton botao;
  JPanel panel;
  JTextField texto;
  
  public TesteAction()
  {
       super("Teste!");      
  }     
       
  public void criaJanela()
  {     
       texto = new JTextField("Digite...");
       panel = new JPanel();
       panel.setLayout(new GridLayout(1,2));
       
       botao = new JButton(" Clique Aqui ");
       
       botao.addActionListener(this);
       panel.add(texto);
       panel.add(botao);
       
       getContentPane().add(panel, BorderLayout.CENTER);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       pack();
       setVisible(true);
  }

  public void actionPerfomed(ActionEvent event)
  {
        botao.setText(texto.getText());
  }

  public static void main(String args[])
  {
        TesteAction Ac = new TesteAction();
        Ac.criaJanela();
  }

}

// fim

É só um exemplo básico…

Mesmo assim, valeu.

TedLoprao

O correto é

actionPerformed

e não

actionPerfomed
L

Ou então tira o implements da sua classe, vc tá fazendo isso na InnerClass já…

direto no botão se seguir o q te falei…

:lol:

Criado 6 de fevereiro de 2004
Ultima resposta 9 de fev. de 2004
Respostas 4
Participantes 3