A Y U D A
Hola, soy nueva en Java y estoy haciendo una aplicaci贸n con tres clases.
La primera es EjecutaGrafica que abre una ventana llamando a la clase Ejercicio1. Bien pues cuando pincho en la ventana de Ejercicio1 quiero que se muestre en la misma ventana la otra clase (Ejercicio2), ¿que es lo que tengo que hacer para cerrar la primera clase y en la misma ventana me muestre Ejercicio2?.
A帽ado el c贸digo para ver si hay algun alma caritativa que me ayude que estoy haciendo mal en el c贸digo.
Clase EjecutaGrafica.java:
import java.awt.Frame;
import java.awt.event.*;
public class EjecutaGrafica
{
static Frame frameGeneral = new Frame();
static Ejercicio1 miEjercicio1 = new Ejercicio1();
static Ejercicio2 miEjercicio2 = new Ejercicio2();
public static void main(String[] args)
{
System.out.println("main de EjecutaGrafica");
miEjercicio1.init();
frameGeneral.repaint();
frameGeneral.add(miEjercicio1);
WindowListener wl = new WindowAdapter()
{
public void windowClosing( WindowEvent evt )
{
System.exit(0);
}
};
frameGeneral.pack();
frameGeneral.show();
frameGeneral.setResizable(false);
frameGeneral.setSize(800,600);
frameGeneral.addWindowListener(wl);
frameGeneral.setVisible(true);
frameGeneral.setLocation(100,100);
}
}
Clase Ejercicio1.java:
import java.awt.event.*;
import java.applet.Applet;
public class Ejercicio1 extends Applet implements MouseListener, MouseMotionListener
{
EjecutaGrafica miEjecutaGrafica = new EjecutaGrafica();
public void init()
{
addMouseListener (this);
addMouseMotionListener(this);
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
g.drawString("Estas en el applet del EJERCICIO1", 100, 100);
} // Fin Paint(Graphics g)
public void mousePressed(MouseEvent evt)
{
miEjecutaGrafica.miEjercicio2.init();
miEjecutaGrafica.frameGeneral.repaint();
miEjecutaGrafica.frameGeneral.add(miEjecutaGrafica.miEjercicio2);
WindowListener wl = new WindowAdapter()
{
public void windowClosing( WindowEvent evt )
{
System.out.println("Cerrando");
System.exit(0);
}
};
} // Fin de mousePressed
// No estamos usando los otros eventos del mouse.
public void mouseClicked (MouseEvent evt){}
public void mouseExited (MouseEvent evt){}
public void mouseEntered(MouseEvent evt){}
public void mouseReleased(MouseEvent evt){}
public void mouseDragged(MouseEvent evt){}
public void mouseMoved (MouseEvent evt){}
}// Fin de la clase
Ejercicio2.java:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class Ejercicio2 extends Applet implements MouseListener, MouseMotionListener
{
public void init()
{
System.out.println("Entra en el init de Ejercicio2");
addMouseListener (this);
addMouseMotionListener(this);
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
g.drawString("Estas en el applet del EJERCICIO2",100,200);
} // Fin Paint(Graphics g)
public void mousePressed(MouseEvent evt)
{
} // Fin de mousePressed
// No estamos usando los otros eventos del mouse.
public void mouseClicked (MouseEvent evt){}
public void mouseExited (MouseEvent evt){}
public void mouseEntered(MouseEvent evt){}
public void mouseReleased(MouseEvent evt){}
public void mouseDragged(MouseEvent evt){}
public void mouseMoved (MouseEvent evt){}
}// Fin de la clase
La primera es EjecutaGrafica que abre una ventana llamando a la clase Ejercicio1. Bien pues cuando pincho en la ventana de Ejercicio1 quiero que se muestre en la misma ventana la otra clase (Ejercicio2), ¿que es lo que tengo que hacer para cerrar la primera clase y en la misma ventana me muestre Ejercicio2?.
A帽ado el c贸digo para ver si hay algun alma caritativa que me ayude que estoy haciendo mal en el c贸digo.
Clase EjecutaGrafica.java:
import java.awt.Frame;
import java.awt.event.*;
public class EjecutaGrafica
{
static Frame frameGeneral = new Frame();
static Ejercicio1 miEjercicio1 = new Ejercicio1();
static Ejercicio2 miEjercicio2 = new Ejercicio2();
public static void main(String[] args)
{
System.out.println("main de EjecutaGrafica");
miEjercicio1.init();
frameGeneral.repaint();
frameGeneral.add(miEjercicio1);
WindowListener wl = new WindowAdapter()
{
public void windowClosing( WindowEvent evt )
{
System.exit(0);
}
};
frameGeneral.pack();
frameGeneral.show();
frameGeneral.setResizable(false);
frameGeneral.setSize(800,600);
frameGeneral.addWindowListener(wl);
frameGeneral.setVisible(true);
frameGeneral.setLocation(100,100);
}
}
Clase Ejercicio1.java:
import java.awt.event.*;
import java.applet.Applet;
public class Ejercicio1 extends Applet implements MouseListener, MouseMotionListener
{
EjecutaGrafica miEjecutaGrafica = new EjecutaGrafica();
public void init()
{
addMouseListener (this);
addMouseMotionListener(this);
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
g.drawString("Estas en el applet del EJERCICIO1", 100, 100);
} // Fin Paint(Graphics g)
public void mousePressed(MouseEvent evt)
{
miEjecutaGrafica.miEjercicio2.init();
miEjecutaGrafica.frameGeneral.repaint();
miEjecutaGrafica.frameGeneral.add(miEjecutaGrafica.miEjercicio2);
WindowListener wl = new WindowAdapter()
{
public void windowClosing( WindowEvent evt )
{
System.out.println("Cerrando");
System.exit(0);
}
};
} // Fin de mousePressed
// No estamos usando los otros eventos del mouse.
public void mouseClicked (MouseEvent evt){}
public void mouseExited (MouseEvent evt){}
public void mouseEntered(MouseEvent evt){}
public void mouseReleased(MouseEvent evt){}
public void mouseDragged(MouseEvent evt){}
public void mouseMoved (MouseEvent evt){}
}// Fin de la clase
Ejercicio2.java:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class Ejercicio2 extends Applet implements MouseListener, MouseMotionListener
{
public void init()
{
System.out.println("Entra en el init de Ejercicio2");
addMouseListener (this);
addMouseMotionListener(this);
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
g.drawString("Estas en el applet del EJERCICIO2",100,200);
} // Fin Paint(Graphics g)
public void mousePressed(MouseEvent evt)
{
} // Fin de mousePressed
// No estamos usando los otros eventos del mouse.
public void mouseClicked (MouseEvent evt){}
public void mouseExited (MouseEvent evt){}
public void mouseEntered(MouseEvent evt){}
public void mouseReleased(MouseEvent evt){}
public void mouseDragged(MouseEvent evt){}
public void mouseMoved (MouseEvent evt){}
}// Fin de la clase
Comentarios aparte del codigo, para quitar un elemento visual (applet, panel, campo de texto, boton, ...) de un contenedor (Frame, ...) se hace con remove(componente a quitar) o bien removeAll(), despues de esto, a帽ades el otro componente con add(componente) y yasta!
