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

Cargar JFrame con distintos JPanels

Estas en el tema de Cargar JFrame con distintos JPanels en el foro de Java en Foros del Web. Tengo una idea en la cabeza pero no sé si se puede llevar a cabo... he hecho varios intentos y no termino de conseguirlo. Quiero ...
  #1 (permalink)  
Antiguo 12/12/2006, 04:45
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 18 años, 11 meses
Puntos: 1
Pregunta Cargar JFrame con distintos JPanels

Tengo una idea en la cabeza pero no sé si se puede llevar a cabo... he hecho varios intentos y no termino de conseguirlo.
Quiero hacer una aplicación con ventanas. Mi idea es crear un JFrame único, y en él ir cargando los distintos JPanels q me he creado, es eso posible?
Cada JPanel lo tengo en una clase distinta, y lo q quisiera es q, por ej, al pinchar sobre un botón, se elimine el Panel actual y se cargue uno nuevo, pero no sé desde dónde tengo q hacer esa llamada, si puedo llamar al JFrame desde el JPanel contenido...
¿Alguien puede guiarme un poco? He buscado por Internet pero tampoco consigo encontrar nada concreto q me ayude.
Gracias.
  #2 (permalink)  
Antiguo 15/12/2006, 20:38
Avatar de ah_puch  
Fecha de Ingreso: agosto-2005
Ubicación: Ecatepec, México
Mensajes: 180
Antigüedad: 18 años, 8 meses
Puntos: 3
Re: Cargar JFrame con distintos JPanels

por que no intentas con JTab's aqui te dejo un ejemplillo de como se hace espero te se de utilidad
mira en los JTab colocas dentro de un Frame varios JPanels esperot e sea de utilidad, logicamente para que esto funciones los debes primero de compilar los JPanel y despues el JFrame sino en la parte del codigo que hace referencia a una busqueda de objetos te va a marcar un error, aa se me olvidaba todos los .class deben de estar en la misma carpeta si no no funciona espero te sea de utilidad esto!!! buena suerte

Este el codigo del JFrame:

Código PHP:
import java.io.*;
import java.text.*;
import java.lang.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;


public class 
tab{
    public static 
void main(String Args[]){
        new 
Administrador().make();
    }
}


class 
Administrador extends JFrame{
    
JTabbedPane fichas = new JTabbedPane();
    
JPanel load = new JPanel();
    
Container pon getContentPane();
    static 
Object Objetos[][] ={{"Usuarios",usuarios.class},
                                {
"Competidores",competidores.class},
                               };
    
    
    static 
JPanel creaPanel( Class clase ) {
            
JPanel panel null;
            try {
                  
panel = (JPanel)clase.newInstance();
                } catch ( 
Exception e ) {
                      
System.out.println);
                    }
            return( 
panel );
        }
    
    
    public 
Administrador(){
        
load.setLayout(null);
        
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
setSize(800,600);    
        for (
int x =0Objetos.lengthx++){
            
fichas.addTab((String)Objetos[x][0],
                        
creaPanel((Class)Objetos[x][1]));
            }
        
pon.add(fichas);
    }
    
    public 
void make(){
        new 
Administrador().setVisible(true);
    }

y estos son los codigos de los JPanel

Código PHP:
 import java.io.*;
import java.text.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.sql.*;
import java.awt.event.*;

public class 
usuarios extends JPanel implements ActionListener {
    
JButton Cmd_Aceptar,Cmd_Limpiar,Cmd_Cerrar;
    
JTextField Text_Nombre,Text_Id;
    
JLabel Nombre,id;
    
JComboBox Roll;
    public 
usuarios(){
        
setLayout(null);
        
Nombre = new JLabel("Nombre:");
        
Nombre.setBounds(12,12,100,50);
        
Nombre.setVisible(true);
        
add(Nombre);
    }
    
    public 
void actionPerformed(ActionEvent e){
    }
    
    public static 
void main(String Args[]){
        
JFrame Ventana = new JFrame();
        
Ventana.getContentPane().add(new usuarios());
        
Ventana.setSize(800,600);
        
Ventana.setTitle("Registro de Usuarios");
        
Ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
Ventana.setVisible(true);
    }

Código PHP:
import java.io.*;
import java.text.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.sql.*;
import java.awt.event.*;

public class 
competidores extends JPanel implements ActionListener {
    
JButton Cmd_Aceptar,Cmd_Limpiar,Cmd_Cerrar;
    
JTextField Text_Nombre,Text_Ap_Paterno,text_Ap_Materno,Text_Id,Text_Peso;
    
JLabel nombre,Ap_Paterno,Ap_Materno,id,escuela,cinta,peso;
    
JComboBox Drop_Escuela,Drop_Cinta;
    public 
competidores(){
        
setLayout(null);
        
        
id = new JLabel("Numero de Ficha:");
        
id.setFont(new Font("Arial",Font.BOLD,20));
        
id.setBounds(12,20,200,50);
        
id.setVisible(true);
        
add(id);
        
        
Text_Id = new JTextField();
        
Text_Id.setFont(new Font("Arial",Font.BOLD,20));
        
Text_Id.setBounds(185,23,450,30);
        
Text_Id.setVisible(true);
        
add(Text_Id);
        
        
nombre = new JLabel("Nombre:");
        
nombre.setFont(new Font("Arial",Font.BOLD,20));
        
nombre.setBounds(12,50,100,50);
        
nombre.setVisible(true);
        
add(nombre);
        
        
Text_Nombre = new JTextField();
        
Text_Nombre.setFont(new Font("Arial",Font.BOLD,20));
        
Text_Nombre.setBounds(12,90,200,30);
        
Text_Nombre.setVisible(true);
        
add(Text_Nombre);
        
        
Ap_Paterno = new JLabel("Apeido Paterno:");
        
Ap_Paterno.setFont(new Font("Arial",Font.BOLD,20));
        
Ap_Paterno.setBounds(220,50,200,50);
        
Ap_Paterno.setVisible(true);
        
add(Ap_Paterno);
        
        
Text_Ap_Paterno = new JTextField();
        
Text_Ap_Paterno.setFont(new Font("Arial",Font.BOLD,20));
        
Text_Ap_Paterno.setBounds(220,90,200,30);
        
Text_Ap_Paterno.setVisible(true);
        
add(Text_Ap_Paterno);
        
        
Ap_Materno = new JLabel("Apeido Materno:");
        
Ap_Materno.setFont(new Font("Arial",Font.BOLD,20));
        
Ap_Materno.setBounds(430,50,200,50);
        
Ap_Materno.setVisible(true);
        
add(Ap_Materno);
        
        
Text_Ap_Paterno = new JTextField();
        
Text_Ap_Paterno.setFont(new Font("Arial",Font.BOLD,20));
        
Text_Ap_Paterno.setBounds(430,90,200,30);
        
Text_Ap_Paterno.setVisible(true);
        
add(Text_Ap_Paterno);
    
    }
    
    public 
void actionPerformed(ActionEvent e){
    }
    
    public static 
void main(String Args[]){
        
JFrame Ventana = new JFrame();
        
Ventana.getContentPane().add(new competidores());
        
Ventana.setSize(800,600);
        
Ventana.setTitle("Inscripcion de Competidores");
        
Ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
Ventana.setVisible(true);
    }

__________________
La programacion no es un trabajo, es un Arte
http://www.purodev.blogspot.com
  #3 (permalink)  
Antiguo 16/12/2006, 00:01
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Re: Cargar JFrame con distintos JPanels

Hola:

Suponte que tiene el jframe y varios paneles panel1, panel2,etc.

Con jframe.getContentPane().add(panel1) añades el panel1

cuando quieras cambiarlo por el panel2, simplemente

jframe.getContentPane().remove(panel1);
jframe.getContentPane().add(panel2);

Si tienes problemas de refresco, llama luego a panel2.updateUI();

Se buena.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 17/12/2006, 09:22
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Cargar JFrame con distintos JPanels

Muchas gracias por las respuestas, me han servido de mucha ayuda. Por si a alguien le sirve de ayuda... tuve un error programando... Estoy implementando las interfaces gráficas con NetBeans, q con arrastrar sobre los elementos gráficos, te los añade y te crea el código necesario, pero mi error fue q no creé los JPanles como componentes del JFrame, si no fuera de éste.
ahora está todo solucionado, GRACIAS.
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 20:58.