Pessal,
Estou aprendendo em Java ( +1 ), peguei um exemplo sobre eventos e estou com dificuldades pois quando compilo, me aparece a mensagem:
acao2:java:5: acao2 should be declared abstract; it does not define actionPerformed(java.awt.event.ActionEvent) in acao2
public class acao2 extends JFrame implements ActionListenter {
Pelo que percebi, o seu método actcionPerformed(…) está começando com letra Maiúscula:
public void ActionPerfomed( ActionEvent e ) {}
Este método não existe, portanto você não está sobrepondo o método actionPerfomed(…) do JFrame. O correto seria:
public void actionPerfomed( ActionEvent e ) {} // Começa com minúscula
O Java é case-sensitive. Ou seja, ele diferencia atributos (ou variáveis, ou métodos) com mesmo nome mas com tipo diferente. Ex: atributo, Atributo, ATRIBUTO, etc. Se fosse no Pascal ou no VB (acho) isso não faria a menor diferença, mas no Java faz.
Não entendi muito bem o que vc quis fazer com o evento do seu código, por favor explique-se melhor mas pelo que eu vi vc está usando de maneira errada. O código roda mas dessa maneira…[code]
import java.awt.* ;
import javax.swing.* ;
import java.awt.event.* ;
public class acao2 extends JFrame implements ActionListener {
GridLayout layout;
JLabel label;
JButton botao;
Ainda não funciona. Quanto a dica do Rafael, deixei em minuscula mas continuou o erro. Quanto ao exemplo do Luis, copiei (CTRL+C) o seu exemplo, mas dá o mesmo erro.
O Renam me desculpa, eu coloquei o código meio errado pra vc, tem que tirar o implements ActionListener do código.Agora põe pra compilar de novo que da certo, blz!!!
Copiei seu código original, modifiquei da forma que sugeri e deu o seu erro. Fui até a Api do Java referente a
ActionListener. Copiei o único método desta interfacce e colei no seu código. Assim ficou:
public void actionPerformed( ActionEvent e ) {}
E daí compilou e rodou corretamente.
O problema foi o seguinte: Enquanto você digitou ActionPerfomed o correto seria actionPerformed. Repare que o a é minúsculo e que há um segundo r depois do segundo o.
Este erro de grafia é muito comum.
Outra coisa: quando uma classe implementa uma interface, ela deve implementar todos os métodos definidos por esta interface. Por isso a sugestão do Renan não funcionou: Ele não implementou o método actionPerformed().
Funcionou perfeitamente !
Era isto mesmo. grafia. Quanto a implementação, bem não posso discutir nada sobre, pois ainda não entendo direito o conceito de objetos. ( Sou programador clarion e o mesmo é pobrissimo sobre objetos ).
Mas, vou estudá-los e assim aprimorar o conhecimento sobre esta ótima linguagem.