Foros del Web » Programación para mayores de 30 ;) » Java »

Duda con Jpanel

Estas en el tema de Duda con Jpanel en el foro de Java en Foros del Web. Buenos días chic@s. No sé si es que no entiendo bien el funcionamiento de los JPanel, pero tengo una ventana en la cual tengo dos ...
  #1 (permalink)  
Antiguo 17/03/2012, 03:26
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 8 meses
Puntos: 14
Duda con Jpanel

Buenos días chic@s.

No sé si es que no entiendo bien el funcionamiento de los JPanel, pero tengo una ventana en la cual tengo dos simples paneles. Cuando le doy a Abrir en un JToolBar de la ventana tengo que abrir una serie de botones y textos en los dos paneles a la vez...

Me sale en uno de los paneles y en el otro no... Si muevo la ventana con el ratón me sale, tambien si redimensiono la ventana... He probado el refrescar con repaint, validate, validateUI, en fin de todo, pero es ya probar por probar...

Yo vengo de otros lenguajes como Visual en los que esto no es ningún problema, pero es que me estoy atascando en esto y yo creo que debe de ser una tontería, pero abrir elementos en dos paneles a la vez me esta costando la vida yo creo que esto no es normal, tengo que hacer algo mal porque siempre tengo problemas al añadir cosas. Yo siempre uso this.setLayout(null) en todos los elementos de interfaz que uso (JFrame, JPanel, JInternalFrame...) ya que estoy siguiendo un libro y siempre lo hace así.. ¿Es ese el fallo? No creo que sea porque asi lo hace en el Libro. Uso eclipse. A ver si alguie me puede echar una mano porque es que en todo proyecto que hago me atasco un rato en añadir y borrar elementos a paneles y ventanas... Y borrar de los dos paneles ya ni os cuento.

Estoy en entorno Swing y lo que hago es simplemente esto:

(Estando en el JFrame)
Código:
abrir.addActionListener(new ActionListener){
  @Over....


    panel1.add(cargarBotonera);
    panel2.add(cargarBotonera);



}



Para borrar

Código:
borrar.addActionListener(new ActionListener){
   @Over...

    panel1.QuitarBotonera();
    panel1.repaint();

    panel2.QuitarBotonera();
    panel2.repaint();


}

QuitarBotonera(); simplemente hace
this.remove(btnombre);
this.remover(btapellidos);
..
..
__________________
Aprendiendo un poco de Java :D
  #2 (permalink)  
Antiguo 17/03/2012, 12:08
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Duda con Jpanel

El método que buscas es updateUI() en vez de repaint()

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 18/03/2012, 04:05
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 8 meses
Puntos: 14
Respuesta: Duda con Jpanel

Tampoco me funciona... Yo es que creo que tendría que revisarme los conceptos básicos, sobre ventanas, contenedores, layout y demás...

Tengo los dos JinternalFrame con setLayout(null) y sin container, puede ser por eso, no?
__________________
Aprendiendo un poco de Java :D
  #4 (permalink)  
Antiguo 18/03/2012, 05:47
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Duda con Jpanel

Hola:

Esto "Me sale en uno de los paneles y en el otro no... Si muevo la ventana con el ratón me sale, tambien si redimensiono la ventana" es típico de añadir paneles/componentes a una ventana que está visible y se soluciona llamando al método updateUI() del botón/panel que acabas de añadir. Asegúrate que tu programa está ahora en esa situación (se pintan una vez que redimensionas la ventana o la mueves) y prueba a hacer esa llamada. Es posible que en tus pruebas la situación actual sea otra.

No entiendo lo de "Tengo los dos JinternalFrame con setLayout(null) y sin container". Los JInternalFrame se suelen colocar en un JDesktopPane y es necesario darles un size() para que sean visibles, ya que por defecto tienen 0,0 de tamaño.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: jpanel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:14.