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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  no se ven los menus en el JPanel
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: no se ven los menus en el JPanel  (Leído 7,961 veces)
jclaurian

Desconectado Desconectado

Mensajes: 8



Ver Perfil WWW
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


En línea

Codename!!


Desconectado Desconectado

Mensajes: 883



Ver Perfil
Re: no se ven los menus en el JPanel
« Respuesta #1 en: 30 Marzo 2008, 16:40 pm »

en lugar de setsize, usa pack()


En línea

No te dejes mover por las masas, se tu mismo.




jclaurian

Desconectado Desconectado

Mensajes: 8



Ver Perfil WWW
Re: no se ven los menus en el JPanel
« Respuesta #2 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.
En línea

Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.919



Ver Perfil WWW
Re: no se ven los menus en el JPanel
« Respuesta #3 en: 31 Marzo 2008, 16:12 pm »

Ummm... como no pones el código completo... una sugerencia estúpida: primero pon las imágenes, y luego sí crea y añade los menús, a ver que pasa.

Un saludo!
En línea

JWizard

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: no se ven los menus en el JPanel
« Respuesta #4 en: 1 Abril 2008, 02:00 am »

de que tipo es "carta" ?
recuerda que los componentes pesados se pintan sobre swing
En línea

jclaurian

Desconectado Desconectado

Mensajes: 8



Ver Perfil WWW
Re: no se ven los menus en el JPanel
« Respuesta #5 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();

}
}
En línea

JWizard

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: no se ven los menus en el JPanel
« Respuesta #6 en: 2 Abril 2008, 06:57 am »

ya te dije cual es el problema, estas usando componentes pesados (AWT) dichos componentes si pintan siempre sobre swing es por eso que tapan a tus menus, para la clase Carta podrias extender de un JPanel y reescribir el metodo paint sin olvida llamar a super.paint y veras como se soluciona.

NOTA: NO ESTOY SEGURO pero creo haber visto en la clase Component un setter para obligar a pintar primero swing...

En línea

jclaurian

Desconectado Desconectado

Mensajes: 8



Ver Perfil WWW
Re: no se ven los menus en el JPanel
« Respuesta #7 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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
recoger una referencia de JFrame de un JPanel
Java
joelmanx 0 2,906 Último mensaje 13 Enero 2011, 14:27 pm
por joelmanx
El JPanel pierde su contenido.
Java
NetJava 2 4,385 Último mensaje 14 Febrero 2011, 22:34 pm
por NetJava
Redimensionar tamaño JPanel dentro de otro JPanel [SOLUCIONADO]
Java
pisagatos 3 21,898 Último mensaje 11 Octubre 2012, 04:16 am
por Gianko
Cambiar titulo TitledBorder en JPanel
Java
monsefoster 2 28,430 Último mensaje 10 Abril 2011, 07:28 am
por monsefoster
Colocar una imagen en un Jpanel error
Java
mapers 1 3,702 Último mensaje 9 Agosto 2011, 21:13 pm
por JonathanR
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines