Foro de elhacker.net

Programación => Java => Mensaje iniciado por: jclaurian en 22 Marzo 2008, 05:07 am



Título: Error en declaración de clase :s
Publicado por: jclaurian en 22 Marzo 2008, 05:07 am
Saludos

Estoy aprendiendo Java, mas o menos se los fundamentos del lenguaje, lo que me falla es lo referente a la POO, estoy muy acostumbrado a C.

Baje el código fuente de un juego me memoria (ese de ir volteando cartas) y lo corrí y funciona muy bien. Imprimi el código para escribirlo yo y ver mas o menos como funcionaba.

Pues lo hice, y le cambie unas cositas minimas, sólo que a mi no me funciona, lo raro es, que al estar transcribiendo el código, me marco error en la declaración de la clase, y ese sigue siendo mi único error.

Me marca error en la siguiente linea:
public class Main extends Frame implements MouseListener, ActionListener {

NetBeans me dice que el error es:
memoria.Main is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener

Veo y veo hambos códigos y son iguales, no entiendo porque me marca error al escribir eso, adjunto las dos clases para que las vean, creo que abuzo demasiado.

Gracias

EL archivo esta aquí http://jclaurian.googlepages.com/cartas.zip (http://jclaurian.googlepages.com/cartas.zip) mi clase es la que se llama Main.java

Mejor pongo el código
Esta es mi clase:
Código:
package memoria;
import java.awt.*;
import java.awt.event.*;

public class Main extends Frame implements MouseListener, ActionListener {
//public class Juego extends Frame implements MouseListener ,ActionListener {
   
    Panel panel = new Panel();
    Carta[] carta = new Carta[12];
    Carta carta1, carta2;
    int num = 0;
    Button btnJugar = new Button("Jugar");
    Button btnSalir = new Button("Salir");
   
    public Main() {
        //Asignamos una imagen a cada carga
        carta[0] = new Carta("uno.jpg");
        carta[1] = new Carta("dos.jgp");
        carta[2] = new Carta("tres.jpg");
        carta[3] = new Carta("cuatro.jpg");
        carta[4] = new Carta("cinco.jpg");
        carta[5] = new Carta("seis.jpg");
        carta[6] = new Carta("uno.jpg");
        carta[7] = new Carta("dos.jpg");
        carta[8] = new Carta("tres.jpg");
        carta[9] = new Carta("cuatro.jpg");
        carta[10] = new Carta("cinco.jpg");
        carta[11] = new Carta("seis.jpg");
       
        btnJugar.addActionListener(this);
        btnSalir.addActionListener(this);
       
        panel.add(btnJugar);
        panel.add(btnSalir);
       
        Panel panelCentral = new Panel();
        panelCentral.setLayout(new GridLayout(3,4));
        setBackground(Color.orange);
       
        //Agregamos las cartas al panel
        for(int i=0; i<12; i++) {
           // carta[i].addMouseListener(this);
            panelCentral.add(carta[i]);
        }
       
        setLayout(new BorderLayout());
        add("South", panel);
        add("Center", panelCentral);
    }
   
    public void iniciar() {
        //Volteamos todas las cartas
        for(int i=0; i<12; i++) {
            carta[i].verReverso();
            carta[i].repaint();
        }
    }
   
    public void actionPerformed(ActionEvent evento1) {
        if(evento1.getSource() == btnJugar) {
            iniciar();
            //Compruebo si funciona :p
            System.out.printf("El botón Iniciar Juego a sisdo precionado");
        }
        else {
            System.out.print("Pues entonces oprimio el botón Salir");
            System.exit(0);
        }
    }
   
    public void mouseClicked(MouseEvent e) { }
   
    public void mouseEntered(MouseEvent e) { }
   
    public void mouseExixted(MouseEvent e) { }
   
    public void mousePressed(MouseEvent e) {
       
        if(e.getSource() instanceof Carta) {
            num++;
            switch(num) {
                case 1: {
                    carta1 = (Carta)e.getSource();
                    carta1.verCara();
                    carta1.repaint();
                    break;
                }
                case 2: {
                    carta2 = (Carta)e.getSource();
                    if(carta2.getTapada() == false)
                        num--;
                    if(carta2.getTapada() == true) {
                        carta2.verCara();
                        carta2.repaint();
                    }
                }
                case 3: {
                    if(carta1.getNombre().equals(carta2.getNombre())) {
                        carta1.verCara();
                        carta1.repaint();
                        carta2.verCara();
                        carta2.repaint();
                        num=0;
                        break;
                    }
                    else {
                        carta1.verReverso();
                        carta1.repaint();
                        carta2.verReverso();
                        carta2.repaint();
                        num=0;
                        break;
                    }
                }
            }
        }
    }
     
    public void MouseReleased(MouseEvent e) { }
   
    public static void main(String[] args) {
        // TODO code application logic here
        Main juego = new Main();
        juego.setSize(500,500);
        juego.show();
    }
   
    public boolean handleEvent(Event evento) {
        switch(evento.id) {
            case Event.WINDOW_DESTROY: {
                System.exit(0);
                return true;
            }
            default:
                return false;
        }
    }
}
Y en esta me baso:
Código:
import java.awt.*;
import java.awt.event.*;
public class Juego extends Frame implements MouseListener ,ActionListener {
Panel p1 = new Panel();
Imagen[] foto= new Imagen[12];
Imagen im,im2;
int lose=0;
int win=0;
TextField  maxerr = new TextField("5");
int err;
int numero=0;
MensajeTxt mensaje;
Button botonjugar = new Button("Jugar");
Button botonsalir = new Button("Exit");
    public  Juego() {
foto[0]=new Imagen("uno.jpeg");
foto[1]=new Imagen("dos.jpeg");
foto[2]= new Imagen("tres.jpeg");
        foto[3]= new Imagen("cuatro.jpeg");
        foto[4]= new Imagen("cinco.jpeg");
        foto[5]= new Imagen("seis.jpeg");
foto[6]= new Imagen("uno.jpeg");
        foto[7]= new Imagen("dos.jpeg");
        foto[8]= new Imagen("tres.jpeg");
foto[9]= new Imagen("cuatro.jpeg");
        foto[10]= new Imagen("cinco.jpeg");
foto[11]= new Imagen("seis.jpeg");       
botonsalir.addActionListener (this);
botonjugar.addActionListener (this);
p1.add(botonjugar);
p1.add(botonsalir);
p1.add(new Label("Max.Errores"));
p1.add(maxerr);
err = Integer.parseInt(maxerr.getText());

        Panel centerPanel = new Panel();
centerPanel.setLayout( new GridLayout( 3,4 ) );
setBackground(Color.orange);
        for(int i =0;i<12;i++)
{
foto[i].addMouseListener(this);
centerPanel.add(foto[i]);
}

        setLayout( new BorderLayout() );
        add( "South",p1);
        add( "Center",centerPanel );

  }
  public void iniciar()
{
for(int i =0;i<12;i++)
{
foto[i].verReverso();
foto[i].repaint();
}
}
  public void actionPerformed(ActionEvent evt1)
{
if(evt1.getSource() == botonjugar)
{
iniciar();
err = Integer.parseInt(maxerr.getText());
System.out.print(err);
System.out.println("Boton Jugar Presionado");
}
else
{
new MensajeTxt("chao");
System.out.println("Boton exit Presionado");
System.exit( 0 );
}
}
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{

if (e.getSource() instanceof Imagen){

numero++;
switch (numero){
case 1:{
im=(Imagen)e.getSource();
im.verCara();
im.repaint();
break;
   }


case 2:{
im2=(Imagen)e.getSource();
if(im2.getTapada()==false){numero--;}
if(im2.getTapada()==true)
  {
im2.verCara();
  im2.repaint();
if(win==5)
{
win ++;
  }
if(win == 6)
  {
   win = 0;
           mensaje = new MensajeTxt("You Win");
   mensaje.show();
   iniciar();
}
}
break;}


case 3:{
    if (im.getNombre().equals(im2.getNombre()))
{
  im.verCara();
im.repaint();
im2.verCara();
im2.repaint();
numero=0;
win++;
if(win==6)
  {
win=0;
  }
break;
}
else{
im.verReverso();
im.repaint();
im2.verReverso();
im2.repaint();
numero=0;
lose++;
if(lose == err)
   {
lose = 0;
mensaje = new MensajeTxt("You Lose");
mensaje.show();
iniciar();
}
break;

}
}

}
}
}
public void mouseReleased(MouseEvent e)
{
}
    public static void main( String args[] ) {
        Juego window = new Juego();

        window.setTitle("Juego Cartas");
window.setSize(500,500);
        window.show();

        }


    public boolean handleEvent( Event evt ) {
        switch( evt.id ) {
            case Event.WINDOW_DESTROY:
                {
                System.exit( 0 );
                return true;
                }
            default:
                return false;
            }
        }
    }



Título: Re: Error en declaración de clase :s
Publicado por: Lu15_CL4 en 22 Marzo 2008, 09:00 am
no revise bien el codigo, solamente me enfoke en tu error ^^

en cierta linea de tu codigo de la clase esta esto:
public void mouseExixted(MouseEvent e) { }

y debe ser esto:
public void mouseExited(MouseEvent e) { }

 ;D


Título: Re: Error en declaración de clase :s
Publicado por: jclaurian en 22 Marzo 2008, 18:57 pm
Lu15_CL4 gracias por contestar, si ya vi cual era el problema, tenia mal escrito el método, tendre mas cuidado con eso.