Java - Varios paneles sobre un JFrame

   
Vista:

Varios paneles sobre un JFrame

Publicado por Aleida (27 intervenciones) el 08/04/2009 01:20:31
Hola a todos...
Bueno mi problema es que dependiendo de un evento por ejemplo un boton pulsado o clic sobre un menu quiero que me aperezca uno u otro panel que tengo en otras clases...
al perecer funciona la recepcion de los eventos pero el programa no "repinta" el frame con el nuevo panel..mejor dicho el nuevo panel que quiero poner se dibuja abajo del que ya esta...espero que alguien pueda darme una idea para corregir este problema...

Gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Varios paneles sobre un JFrame

Publicado por Jorge Prado Mercado (15 intervenciones) el 08/04/2009 04:53:20
Mira, existe un tipo de gestor de organizacion llamado CardLayout que te permite precisamente eso: manejar "cartas", es decir, en una carta ubicada en el norte por ejemplo pones un panel con botones y en otra carta pones un panel con etiquetas, y dependiendo de una accion (con un boton o un menu) puede mover una carta (con su panel) hacia atrás o adelante.

Busca ese CardLayout para que te des una idea. Ahi te va una idea rápida.

http://www.cica.es/formacion/JavaTut/Cap4/clayout.html

import java.awt.*;
import java.applet.Applet;

public class AwtCard extends Applet {
Panel card;
final static String PanelBoton = "Panel con Botones";
final static String PanelTexto = "Panel con Campo de Texto";

public void init() {
setLayout( new BorderLayout() );

Panel ac = new Panel();
Choice c = new Choice();

c.addItem( PanelBoton );
c.addItem( PanelTexto );
ac.add( c );
add( "North",ac );

card = new Panel();
card.setLayout( new CardLayout() );

Panel p1 = new Panel();
p1.add( new Button( "Botón 1" ) );
p1.add( new Button( "Botón 2" ) );
p1.add( new Button( "Botón 3" ) );
Panel p2 = new Panel();
p2.add( new TextField( "Texto",20 ) );

card.add( PanelBoton,p1 );
card.add( PanelTexto,p2 );
add( "Center",card );
}

public boolean action( Event evt,Object arg ) {
if( evt.target instanceof Choice )
{
( (CardLayout)card.getLayout() ).show( card,(String)arg );
return true;
}
return false;
}
}


http://afrodita.unicauca.edu.co/~dparedes/java/gui/layout/uicard.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar