Erro no ActionListener

6 respostas
C

ae galera… to cm um problema…

to criando um campo minado e quando coloco o ActionListener nos botoes olha o q que aparece de erro:

addActionListener(java.awt.event.ActionListener) in javax.swing.AbstractButton canoot be applied to (tabuleiro10x10)

como q arrumo isso?

6 Respostas

P

coloca o código ai que facilita pra achar o erro.

LuizLG

Posta o código, aí fica mais fácil para falar =)

C

é meu primero programa, entao nao ligem se esta meio ‘amador’ :slight_smile:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
public class tabuleiro10x10 extends JFrame
{
	JButton [] Botoes   = new JButton[100];
    int     [] Vetor    = new int[100];
    Random r = new Random();
    int bomba1,bomba2,bomba3,contador; 
    String op;
    
    JMenuBar menuBar;
    JMenu menu, submenu;
    JMenuItem menuItem;
    JRadioButtonMenuItem rbFacil,rbMedio,rbDificil;
	
		public JMenuBar createMenuBar() {
        

        menuBar = new JMenuBar();

        //Criação do Menu Opções
        menu = new JMenu("Opções");
        menu.setMnemonic(KeyEvent.VK_O);
        menu.getAccessibleContext().setAccessibleDescription("Arquivo");
        menuBar.add(menu);

        
        menuItem = new JMenuItem("Reiniciar",KeyEvent.VK_R);
        menuItem.getAccessibleContext().setAccessibleDescription("Reiniciar o jogo");
        menu.add(menuItem);

      
        menuItem = new JMenuItem("Encerrar");
        menuItem.setMnemonic(KeyEvent.VK_E);
        menu.add(menuItem);
        
        menu.addSeparator();
        
        //Submenu Dificuldade
        submenu = new JMenu("Dificuldade");
        submenu.setMnemonic(KeyEvent.VK_D);

        ButtonGroup group = new ButtonGroup();

        rbFacil = new JRadioButtonMenuItem("Fácil");
        rbFacil.setSelected(true);
        rbFacil.setMnemonic(KeyEvent.VK_F);
        group.add(rbFacil);
        submenu.add(rbFacil);
        menu.add(submenu);

        rbMedio = new JRadioButtonMenuItem("Médio");
        rbMedio.setMnemonic(KeyEvent.VK_M);
        group.add(rbMedio);
        submenu.add(rbMedio);
        menu.add(submenu);
        
        rbDificil = new JRadioButtonMenuItem("Difícil");
        rbDificil.setMnemonic(KeyEvent.VK_D);
        group.add(rbDificil);
        submenu.add(rbDificil);
        menu.add(submenu);
        
        
		//Submenu Tabuleiro
        submenu = new JMenu("Tabuleiro");
        submenu.setMnemonic(KeyEvent.VK_T);
        
        menuItem = new JMenuItem("5x5");
        menuItem.setMnemonic(KeyEvent.VK_5);
        submenu.add(menuItem);
        menu.add(submenu);

        menuItem = new JMenuItem("10x10");
        menuItem.setMnemonic(KeyEvent.VK_0);
        menuItem.setEnabled(false);
        submenu.add(menuItem);
        menu.add(submenu);
        
        menuItem = new JMenuItem("15x15");
        menuItem.setMnemonic(KeyEvent.VK_1);
        submenu.add(menuItem);
        menu.add(submenu);
        
        menu.addSeparator();
        
        menuItem = new JMenuItem("Sair");
        menuItem.setMnemonic(KeyEvent.VK_S);
        menu.add(menuItem);
        menuItem.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e)
		{
		System.exit(0);
		}
		}); 
        

        return menuBar;
    }
	
	public tabuleiro10x10(){
	
		try {
 		   
 		   UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName()) ;
 		 } 
 		 catch (Exception e) {}
            
          Componentes();
    }
    
	public void Componentes(){
	
	addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) {System.exit(0);}});
	
	Container c = getContentPane();
	c.setLayout(new GridLayout(10,10));

	//Distribuição dos botoes
	for(int i=0;i<100;i++){
	Botoes[i] = new JButton("");
	Botoes[i].setFocusable(false);
	Botoes[i].addActionListener(this);
    c.add(Botoes[i]);
	}
	
	
	//Random das bombas
	bomba1 = r.nextInt(100);
  	bomba2 = r.nextInt(100);
  	bomba3 = r.nextInt(100);
  	
  	while(bomba1==bomba2){
  		bomba2 = r.nextInt(100);
  	}
  	
  	while(bomba1==bomba3){
  		bomba3 = r.nextInt(100);
  	}
  	
  	while(bomba2==bomba3){
  		bomba3 = r.nextInt(100);
  	}
  	
  

 	
  	//Numero abaixo para bomba1
	if(bomba1+10 < 100)	
	Botoes[bomba1+10].setText("1");

		
	//Numero acima para bomba1
	if(bomba1-10 >= 0)
	Botoes[bomba1-10].setText("1");

	
	
	//Numero a esquerda para bomba1
	if(bomba1-1 >= 0 && bomba1-1!=9 && bomba1-1!=19 && bomba1-1!=29 && bomba1-1!=39 && bomba1-1!=49 && bomba1-1!=59 && bomba1-1!=69 && bomba1-1!=79 && bomba1-1!=89 && bomba1-1!=99)
	Botoes[bomba1-1].setText("1");	
	
	//Numero a direita para bomba1
	if(bomba1+1 < 100 && bomba1+1!=10 && bomba1+1!=20 && bomba1+1!=30 && bomba1+1!=40 && bomba1+1!=50 && bomba1+1!=60 && bomba1+1!=70 && bomba1+1!=80 && bomba1+1!=90)
	Botoes[bomba1+1].setText("1");

	
	//Numero diagonal direita abaixo para bomba1
	if(bomba1+11 < 100 && bomba1+11 != 20 && bomba1+11 != 30 && bomba1+11 != 40 && bomba1+11 != 50 && bomba1+11 != 60 && bomba1+11 != 70 && bomba1+11 != 80 && bomba1+11 != 90)
	Botoes[bomba1+11].setText("1");

	
	//Numero diagonal direita acima para bomba1
	if(bomba1-9 > 0 && bomba1-9 != 10 && bomba1-9 != 20 && bomba1-9 != 30 && bomba1-9 != 40 && bomba1-9 != 50 && bomba1-9 != 60 && bomba1-9 != 70 && bomba1-9 != 80 && bomba1-9 != 90)
	Botoes[bomba1-9].setText("1");


	//Numero diagonal esquerda abaixo para bomba1
	if(bomba1+9 < 100 && bomba1+9 != 9 && bomba1+9 != 19 && bomba1+9 != 29 && bomba1+9 != 39 && bomba1+9 != 49 && bomba1+9 != 59 && bomba1+9 != 69 && bomba1+9 != 79 && bomba1+9 != 89 && bomba1+9 != 99)
	Botoes[bomba1+9].setText("1");


	//Numero diagonal esquerda acima para bomba1
	if(bomba1-11 >= 0 && bomba1-11 != 9 && bomba1-11 != 19 && bomba1-11 != 29 && bomba1-11 != 39 && bomba1-11 != 49 && bomba1-11 != 59 && bomba1-11 != 69 && bomba1-11 != 79)
	Botoes[bomba1-11].setText("1");

	
	
	
	
	
	
	//Numero abaixo para bomba2
	if(bomba2+10 < 100){
	
		op = Botoes[bomba2+10].getText();
		if(op == "1"){
			Botoes[bomba2+10].setText("2");
		}
		else
		Botoes[bomba2+10].setText("1");
	}
	
					
	//Numero acima para bomba2
	if(bomba2-10 >= 0){
		
		op = Botoes[bomba2-10].getText();
		if(op == "1"){
			Botoes[bomba2-10].setText("2");
		}
		else
		Botoes[bomba2-10].setText("1");
	}

	
	//Numero a esquerda para bomba2
	if(bomba2-1 >= 0 && bomba2-1!=9 && bomba2-1!=19 && bomba2-1!=29 && bomba2-1!=39 && bomba2-1!=49 && bomba2-1!=59 && bomba2-1!=69 && bomba2-1!=79 && bomba2-1!=89 && bomba2-1!=99)	{
		
		op = Botoes[bomba2-1].getText();
		if(op == "1"){
			Botoes[bomba2-1].setText("2");
		}
		else
		Botoes[bomba2-1].setText("1");
	}
		
	
	//Numero a direita para bomba2
	if(bomba2+1 < 100 && bomba2+1!=10 && bomba2+1!=20 && bomba2+1!=30 && bomba2+1!=40 && bomba2+1!=50 && bomba2+1!=60 && bomba2+1!=70 && bomba2+1!=80 && bomba2+1!=90){
		
		op = Botoes[bomba2+1].getText();
		if(op == "1"){
			Botoes[bomba2+1].setText("2");
		}
		else
		Botoes[bomba2+1].setText("1");
	}
	
	
	//Numero diagonal direita abaixo para bomba2
	if(bomba2+11 < 100 && bomba2+11 != 20 && bomba2+11 != 30 && bomba2+11 != 40 && bomba2+11 != 50 && bomba2+11 != 60 && bomba2+11 != 70 && bomba2+11 != 80 && bomba2+11 != 90){
		
		op = Botoes[bomba2+11].getText();
		if(op == "1"){
			Botoes[bomba2+11].setText("2");
		}
		else
		Botoes[bomba2+11].setText("1");
	}
	
	
	//Numero diagonal direita acima para bomba2
	if(bomba2-9 > 0 && bomba2-9 != 10 && bomba2-9 != 20 && bomba2-9 != 30 && bomba2-9 != 40 && bomba2-9 != 50 && bomba2-9 != 60 && bomba2-9 != 70 && bomba2-9 != 80 && bomba2-9 != 90){
		
		op = Botoes[bomba2-9].getText();
		if(op == "1"){
			Botoes[bomba2-9].setText("2");
		}
		else
		Botoes[bomba2-9].setText("1");
	}
	

	//Numero diagonal esquerda abaixo para bomba2
	if(bomba2+9 < 100 && bomba2+9 != 9 && bomba2+9 != 19 && bomba2+9 != 29 && bomba2+9 != 39 && bomba2+9 != 49 && bomba2+9 != 59 && bomba2+9 != 69 && bomba2+9 != 79 && bomba2+9 != 89 && bomba2+9 != 99){
		
		op = Botoes[bomba2+9].getText();
		if(op == "1"){
			Botoes[bomba2+9].setText("2");
		}
		else
		Botoes[bomba2+9].setText("1");
	}
	

	//Numero diagonal esquerda acima para bomba2
	if(bomba2-11 >= 0 && bomba2-11 != 9 && bomba2-11 != 19 && bomba2-11 != 29 && bomba2-11 != 39 && bomba2-11 != 49 && bomba2-11 != 59 && bomba2-11 != 69 && bomba2-11 != 79){
		
		op = Botoes[bomba2-11].getText();
		if(op == "1"){
			Botoes[bomba2-11].setText("2");
		}
		else
		Botoes[bomba2-11].setText("1");	
	}
	











	//Numero abaixo para bomba3
	if(bomba3+10 < 100){
	
		op = Botoes[bomba3+10].getText();
		if(op == "1"){
			Botoes[bomba3+10].setText("2");
		}
		
		
		else if(op == "2"){
			Botoes[bomba3+10].setText("3");
		}
		
		else
		Botoes[bomba3+10].setText("1");
	
	}
	
					
	//Numero acima para bomba3
	if(bomba3-10 >= 0){
		
		op = Botoes[bomba3-10].getText();
		if(op == "1"){
			Botoes[bomba3-10].setText("2");
		}
	
		
		else if(op == "2"){
			Botoes[bomba3-10].setText("3");
		}
		
		else
		Botoes[bomba3-10].setText("1");
		
	}

	
	//Numero a esquerda para bomba3
	if(bomba3-1 >= 0 && bomba3-1!=9 && bomba3-1!=19 && bomba3-1!=29 && bomba3-1!=39 && bomba3-1!=49 && bomba3-1!=59 && bomba3-1!=69 && bomba3-1!=79 && bomba3-1!=89 && bomba3-1!=99)	{
		
		op = Botoes[bomba3-1].getText();
		if(op == "1"){
			Botoes[bomba3-1].setText("2");
		}
		
		
		else if(op == "2"){
			Botoes[bomba3-1].setText("3");
		}
		
		else
		Botoes[bomba3-1].setText("1");
		
	}
		
	
	//Numero a direita para bomba3
	if(bomba3+1 < 100 && bomba3+1!=10 && bomba3+1!=20 && bomba3+1!=30 && bomba3+1!=40 && bomba3+1!=50 && bomba3+1!=60 && bomba3+1!=70 && bomba3+1!=80 && bomba3+1!=90){
		
		op = Botoes[bomba3+1].getText();
		if(op == "1"){
			Botoes[bomba3+1].setText("2");
		}
		
		
		else if(op == "2"){
			Botoes[bomba3+1].setText("3");
		}
		
		else
		Botoes[bomba3+1].setText("1");
	}
	
	
	//Numero diagonal direita abaixo para bomba3
	if(bomba3+11 < 100 && bomba3+11 != 20 && bomba3+11 != 30 && bomba3+11 != 40 && bomba3+11 != 50 && bomba3+11 != 60 && bomba3+11 != 70 && bomba3+11 != 80 && bomba3+11 != 90){
		
		op = Botoes[bomba3+11].getText();
		if(op == "1"){
			Botoes[bomba3+11].setText("2");
		}

		
		else if(op == "2"){
			Botoes[bomba3+11].setText("3");
		}
	
		else
		Botoes[bomba3+11].setText("1");
	}
	
	
	//Numero diagonal direita acima para bomba3
	if(bomba3-9 > 0 && bomba3-9 != 10 && bomba3-9 != 20 && bomba3-9 != 30 && bomba3-9 != 40 && bomba3-9 != 50 && bomba3-9 != 60 && bomba3-9 != 70 && bomba3-9 != 80 && bomba3-9 != 90){
		
		op = Botoes[bomba3-9].getText();
		if(op == "1"){
			Botoes[bomba3-9].setText("2");
		}
	
		
		else if(op == "2"){
			Botoes[bomba3-9].setText("3");
		}
		
		else
		Botoes[bomba3-9].setText("1");
	
	}
	

	//Numero diagonal esquerda abaixo para bomba3
	if(bomba3+9 < 100 && bomba3+9 != 9 && bomba3+9 != 19 && bomba3+9 != 29 && bomba3+9 != 39 && bomba3+9 != 49 && bomba3+9 != 59 && bomba3+9 != 69 && bomba3+9 != 79 && bomba3+9 != 89 && bomba3+9 != 99){
		
		op = Botoes[bomba3+9].getText();
		if(op == "1"){
			Botoes[bomba3+9].setText("2");
		}
		
		
		else if(op == "2"){
			Botoes[bomba3+9].setText("3");
		}
			
		else
		Botoes[bomba3+9].setText("1");
	}
	

	//Numero diagonal esquerda acima para bomba3
	if(bomba3-11 >= 0 && bomba3-11 != 9 && bomba3-11 != 19 && bomba3-11 != 29 && bomba3-11 != 39 && bomba3-11 != 49 && bomba3-11 != 59 && bomba3-11 != 69 && bomba3-11 != 79){
		
		op = Botoes[bomba3-11].getText();
		if(op == "1"){
			Botoes[bomba3-11].setText("2");
		}
		
		
		else if(op == "2"){
			Botoes[bomba3-11].setText("3");
		}
		
		else
		Botoes[bomba3-11].setText("1");
	}


 

	Botoes[bomba1].addActionListener(new ActionListener() {
 		 public void actionPerformed(ActionEvent e)
	{
  	   JOptionPane.showMessageDialog(null,"Perdeu!");
  	   contador = 0;
  	   while (contador < 100){
  	   Botoes[contador].setEnabled(false);
  	   contador++;
  	 }
  	   
 	}
 	});
 	
	
 	
 	Botoes[bomba2].addActionListener(new ActionListener() {
 		 public void actionPerformed(ActionEvent e)
	{
  	   JOptionPane.showMessageDialog(null,"Perdeu!");
  	   contador = 0;
  	   while (contador < 100){
  	   Botoes[contador].setEnabled(false);
  	   contador++;
  	 }
  	 
 	}
 	});
 	
 	
 	
 	
 	
 	Botoes[bomba3].addActionListener(new ActionListener() {
 		 public void actionPerformed(ActionEvent e)
	{
  	   JOptionPane.showMessageDialog(null,"Perdeu!");
  	   contador = 0;
  	   while (contador < 100){
  	   Botoes[contador].setEnabled(false);
  	   contador++;
  	 }
  	 
 	}
 	});
  	
  	Botoes[bomba1].setText("B1");
  	Botoes[bomba2].setText("B2");
  	Botoes[bomba3].setText("B3");

	
	setSize(500,300);
	setLocation(100,100);
	setTitle("Campo Minado");
	setResizable(false);
	setJMenuBar(createMenuBar());
	show();	
	
	}
	public static void main(String args[])
	{
		tabuleiro10x10 x = new tabuleiro10x10();

	}
	
	
	
}
biozit

pode ser a falta do public void actionPerformed(ActionEvent e){ }

para pegar os eventos dos 100 botoes!
(quer diser…nun achei ele…se tiver aí desculpe…mas nun achei dos 100 botoes…)

biozit

e falta o implments!!

public class tabuleiro10x10 extends JFrame implements ActionListener

aqui compilou!

:slight_smile:

Marky.Vasconcelos

Ou invés de implementar ActionListener vc poe que nen ns outros

botao.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //Oque quer que faça aqui } });

eu acho mais simples do que implementar a interface

Criado 17 de abril de 2007
Ultima resposta 17 de abr. de 2007
Respostas 6
Participantes 5