Ya en otro post me habian ayudado con un problema de menus y les agradezco. Ahora me hicieron reescribir la aplicación ya que todo lo que hacia lo hacia dentro del constructor, así que me pusieron a separar todo por metodos.
Mi problema es, tengo un JFrame con menus, tengo dos opciones en un menú, Ciclos y Control, tengo un método para cada uno. Estos métodos lo que hacen sismplemente es incluir un panel de color al frame, cada uno de diferentee color.
Necesito llamar a estos métodos desde los menus, ya los tengo en el evento mousePressed, al seleccionar alguna de las dos opciones llama al método, me imprime en consola un mensaje, que oprimi ciclos o control segun el caso. Pero no me muestra el panel de color.
Ahora, si llamo desde main por ejemplo. juego.cargarCartasCiclos o juego.cargarCartasControl si me muestra el panel de color.
¿Cómo le puedo hacer para que al seleccionar la opción desde el menú me aparezca el panel de color?
Les dejo el código del programa.
Código:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Juego extends JFrame implements MouseListener ,ActionListener {
JPanel panelCiclos = new JPanel();
JPanel panelControl = new JPanel();
JMenu mnuJuego;
JMenu mnuOpciones;
JMenuItem mnuJuegoNuevo;
JMenuItem mnuJuegoSalir;
JMenuItem mnuOpcionesCiclos;
JMenuItem mnuOpcionesControl;
public void cargarCartasCiclos() {
//centerPanel.setLayout( new GridLayout(3,4) );
panelCiclos.setBackground( new Color(0,0,255));
panelCiclos.setVisible(true);
add(panelCiclos);
System.out.println("Entro a ciclos");
}
public void cargarCartasControl() {
panelControl.setBackground( new Color(0,0,155));
panelControl.setVisible(true);
add(panelControl);
System.out.println("Entro a control");
}
public Juego() {
setTitle("Memoria");
setSize(600,600);
setLocation(50,50);
// Menús de la ventana
mnuJuego = new JMenu("Juego");
mnuOpciones = new JMenu("Opciones");
// Elementos del menú Juego
mnuJuegoNuevo = new JMenuItem("Nuevo juego");
mnuJuegoSalir = new JMenuItem("Salir");
// Elementos del menú Opciones
mnuOpcionesCiclos = new JMenuItem("Ciclos");
mnuOpcionesControl = new JMenuItem("Control");
// Agregamos los menús
mnuJuego.add(mnuJuegoNuevo);
mnuJuego.add(mnuJuegoSalir);
mnuOpciones.add(mnuOpcionesCiclos);
mnuOpciones.add(mnuOpcionesControl);
JMenuBar barra = new JMenuBar();
setJMenuBar(barra);
barra.add(mnuJuego);
barra.add(mnuOpciones);
mnuJuegoNuevo.addMouseListener(this);
mnuJuegoSalir.addMouseListener(this);
mnuOpcionesCiclos.addMouseListener(this);
mnuOpcionesControl.addMouseListener(this);
}
public static void main(String[] args) {
Juego jugar = new Juego();
//jugar.cargarCartasCiclos();
//jugar.cargarCartasControl();
jugar.setVisible(true);
}
public void actionPerformed(ActionEvent evt1) {}
public void mouseClicked(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }
// Eventos del mouse
public void mousePressed(MouseEvent e) {
Object fuente = e.getSource();
if (fuente == mnuJuegoNuevo) {
System.out.println("Oprimio nuevo");
}
if (fuente == mnuJuegoSalir)
System.exit(0);
if (fuente == mnuOpcionesCiclos) {
System.out.println("Oprimio Ciclos");
cargarCartasCiclos();
}
if (fuente == mnuOpcionesControl) {
System.out.println("Oprimio Control");
cargarCartasControl();
}
}
public void mouseReleased(MouseEvent e) { }
}