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 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;
}
}
}
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;
}
}
}