elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: [1]
1  Programación / Java / Como mostrar entre varios paneles en: 13 Abril 2008, 13:52 pm
Saludos.

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) { }

}
2  Programación / Java / Re: no se ven los menus en el JPanel en: 9 Abril 2008, 20:17 pm
Disculpen por no haber contestado antes, muchas gracias por la ayuda, ya lo solucione, tenian razon, mudifique extends Canvas  por extends JPanel en la clase Carta y fue todo lo que tuve que hacer para que funcionara.
3  Programación / Java / Re: no se ven los menus en el JPanel en: 2 Abril 2008, 03:53 am
Sigo con el mismo problema, les dejo aquí el código completo haber si ven algo extraño

Carga.java
Código:
import java.awt.*;

class Carta extends Canvas {

boolean tapada;
Image imag;
String mostrar,cara,reverso = "images/reverso.jpeg";
String nombre;

public Carta(String foto) {

tapada = true;
cara = foto;
nombre = foto;
mostrar = reverso;

}

    public void paint( Graphics g ) {

imag = getToolkit().getImage(mostrar);
g.drawImage(imag, 0, 0, this.getSize().width , this.getSize().height , this);

}

boolean getTapada() {
return tapada;
}

String getCara() {
return cara;
}

void verCara() {
mostrar = cara;
tapada = false;
}

void verReverso() {
mostrar = reverso;
tapada = true;
}

public String getNombre() {
return nombre;
}

}


JuegoMemoria.java
Código:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JuegoMemoria extends JFrame {

JPanel juego;
JPanel centerPanel;
JMenu mnuJuego;
JMenu mnuOpciones;
JMenu mnuAyuda;
JMenuItem mnuOpcionesCiclos;
JMenuItem mnuJuegoNuevo;
JMenuItem mnuJuegoSalir;
JMenuItem mnuAyudaAcercade;

EventosMenus menuAlgo;
Carta[] carta = new Carta[12];

public JuegoMemoria() {
super("Juego Memoria");

carta[0]=new Carta("images/uno.jpg");
carta[1]=new Carta("images/dos.jpg");
carta[2]= new Carta("images/tres.jpg");
        carta[3]= new Carta("images/cuatro.jpg");
        carta[4]= new Carta("images/cinco.jpg");
        carta[5]= new Carta("images/seis.jpg");
carta[6]= new Carta("images/uno.jpg");
    carta[7]= new Carta("images/dos.jpg");
        carta[8]= new Carta("images/tres.jpg");
carta[9]= new Carta("images/cuatro.jpg");
        carta[10]= new Carta("images/cinco.jpg");
carta[11]= new Carta("images/seis.jpg");   

// Establecer el men� Opciones
mnuOpciones = new JMenu("Opciones");
mnuAyuda = new JMenu("Ayuda");
// Establecer elementos del men� Juego
mnuJuegoNuevo = new JMenuItem("Nuevo");
mnuJuegoSalir = new JMenuItem("Salir");
// Establecer elementos del men� Opciones
mnuOpcionesCiclos = new JMenuItem("Ciclos");
// Establecer elementos del men� Ayuda
mnuAyudaAcercade = new JMenuItem("Acerca de");
// Agregamos los elementos a los men�s
mnuOpciones.add(mnuOpcionesCiclos);
mnuOpciones.add(mnuJuegoSalir);
mnuAyuda.add(mnuAyudaAcercade);
// Creamos la barra de men�s y la ajustamos
JMenuBar barra = new JMenuBar();
setJMenuBar(barra);
barra.add(mnuOpciones);
barra.add(mnuAyuda);

//Eventos
menuAlgo = new EventosMenus();

//Eventos de los men�s
mnuJuegoSalir.addActionListener(menuAlgo);

centerPanel = new JPanel();
centerPanel.setLayout( new GridLayout( 3,4 ) );

//Agrego las cartas al panel
for(int i=0; i<12; i++) {
//carta[i].addMouseListener(this);
centerPanel.add(carta[i]);
}

        setLayout( new BorderLayout() );
        add( "Center",centerPanel );
       
setSize(500,500);
//pack();
setVisible(true);
}

class EventosMenus implements ActionListener {
public void actionPerformed(ActionEvent e) {
Object fuente = e.getSource();

if(fuente == mnuJuegoSalir)
System.exit(0);
}
}

public static void main(String[] args) {
JuegoMemoria juego = new JuegoMemoria();

}
}
4  Programación / Java / Re: no se ven los menus en el JPanel en: 30 Marzo 2008, 23:10 pm
am probé cambiando setSize por pack y la única diferencia fue que al ejecutar la pantalla salio del tamaño de los menús, pero al hacerla grande sigue el mismo problema, los menús se ven por debajo de las imágenes.
5  Programación / Java / no se ven los menus en el JPanel en: 30 Marzo 2008, 07:13 am
Hola

Estoy haciendo una pequeña aplicación donde cargo unas imagenes a un JPanel, todo bien. Lo nuevo que quice hacer fue poner unos menú a la aplicación, mi problema es que cuando hago clic en una opción el menú se muetra pero por debajo de las imagenes que tengo en el panel, es decir, no se ven

Mejor les dejo una imagen para que vean lo que pasa.


Y este es mi código, por lo menos la parte del menu y las imagenes

Código:
// Creamos la barra de menús y la ajustamos
JMenuBar barra = new JMenuBar();
setJMenuBar(barra);
barra.add(mnuOpciones);
barra.add(mnuAyuda);


centerPanel = new JPanel();
centerPanel.setLayout( new GridLayout( 3,4 ) );

//Aqui agrego las imagenes
for(int i=0; i<12; i++) {
//carta[i].addMouseListener(this);
centerPanel.add(carta[i]);
}

        setLayout( new BorderLayout() );
        add( "Center",centerPanel );
       
setSize(500,500);
setVisible(true);

¿Cómo podria solucionar esto? gracias
6  Programación / Java / Re: Error en declaración de clase :s 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.
7  Programación / Java / Error en declaración de clase :s 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 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;
            }
        }
    }

Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines