Olá pessoal, estou assistindo umas video-aula no youtube de Janela Swing e me deparei na seguinte duvída:
import javax.swing.;
import java.awt.;
public class Eventos extends JFrame implements ActionListener {
public Eventos(){
super("Minha Janela");
JButton botao = new JButton("Clique");
botao.addActionListener(this);
getContentPane().add(botao);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,300);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
System.out.println("Clicou no Botao");
}
public static void main(String[] args){
new Eventos();
}
}
No código acima eu implemento a interface na própria classe, porém tentei criar uma outra classe pra rescrever o método da interface mas estou tendo dificuldade de funcionar o botao botao.addActionListener() para que ele possa chamar e executar a ação do botao que neste caso seria imprimir o System.out.println.
Está funcionando o codigo do jeito que voce esperava. Voce clica no botao e aparece no console Clicou no botao. Nessa outra classe voce faz a mesma coisa. implementa ActionListener com seu metodo actionPerfomed(). @Override
Fiz esse exemplo, onde voce tem dois creditos para usar um controle e ligar duas TVs. Ve se ajuda
package PacoteTVs;
public class TVLG {
public static boolean ligada = false;
public void ligar() {
System.out.println("Voce ligou a TV LG");
ligada = true;
}
public void desligar() {
System.out.println("Voce desligou a TV LG");
ligada = false;
}
}
package PacoteTVs;
public class TVSmart {
public static boolean ligada = false;
public void ligar() {
System.out.println("Voce ligou a TV SMART");
ligada = true;
}
public void desligar() {
System.out.println("Voce desligou a TV SMART");
ligada = false;
}