Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/04/2014, 14:37
ricardojara
 
Fecha de Ingreso: noviembre-2012
Mensajes: 53
Antigüedad: 12 años
Puntos: 1
Reconstruir JPanel con Swing

Buenas he hecho un formulario en Java y me gustaría,
que al pulsar un botón se borrase el formulario y en la
ventana apareciese algo asi ("tu nombre es: "+campoNombre.getText() ) etc...

De momento he conseguido que al pulsar el botón se borre un JPanel el cual tiene todos los elementos del formulario. de este modo:

Código:
public void actionPerformed(ActionEvent evento)
{
            panelGlobal.removeAll();
            panelGlobal.repaint();
}
al pulsar el botón se inicia ese código.
Ahora una vez la ventana está limpia lo que pense era añadirle ahora el texto con los datos del formulário algo como esto:
Código:
public void actionPerformed(ActionEvent evento)
{
            panelGlobal.removeAll();
            panelGlobal.repaint();
            panelGlobal.add(new JLabel("tu nombre es: "+nombre.getText()))
            [....] etccc
}
pero a la ventana sigue en blanco aunque le añada JLabels etc...

Me harías un favor si me ayudaseis con ello un saludo

Para los que tengan paciencia y, o ganas de aprender os dejo el código del proyecto entero:
Código:
public class FormularioConScrollCheckBottonsETC implements ActionListener
{
    //limpiar JFrame removeAll()//or remove(JComponent) revalidate(); repaint();
    JFrame frame;
    static JButton enviar,cancelar;
    static JTextField nombre;
    static JPasswordField password;
    static JTextArea descripcion;
    static JScrollPane scrollDescripcion;
    static ButtonGroup radioBotones;
    static JRadioButton opcion1,opcion2;
    static Checkbox hobby1,hobby2,hobby3;
    static JList lista;
    JPanel panelGlobal;
    
    
    FormularioConScrollCheckBottonsETC()
    {
        //creacion de frame y paneles
        frame=new JFrame("Formulario");
        //frame.setLayout(new GridLayout(8,2));
        
        //inicializamos las variables globales
        panelGlobal=new JPanel();
        panelGlobal.setLayout(new GridLayout(8,2));
        enviar=new JButton("Enviar");
        enviar.addActionListener(this);
        cancelar=new JButton("Cancelar");
        cancelar.addActionListener(this);
        nombre=new JTextField(10);
        password=new JPasswordField(10);
        descripcion=new JTextArea();
        scrollDescripcion=new JScrollPane(descripcion);
        radioBotones=new ButtonGroup();
        opcion1=new JRadioButton("Si",true);
        opcion2=new JRadioButton("no");
        radioBotones.add(opcion1);
        radioBotones.add(opcion2);
        hobby1=new Checkbox("ordenadores",false);
        hobby2=new Checkbox("deportes",false);
        hobby3=new Checkbox("darse palillo",false);
        String cosasLista[]={"Soltero","Casado"};
        lista=new JList(cosasLista);
        
        
        //añadimos cosas
        //nombre
        panelGlobal.add(new JLabel("Nombre: ",JLabel.RIGHT));
        panelGlobal.add(nombre);
        //contraseña
        panelGlobal.add(new JLabel("contraseña: ",JLabel.RIGHT));
        panelGlobal.add(password);
        //descripcion con Scroll
        panelGlobal.add(new JLabel("Descripción: ",JLabel.RIGHT));
        panelGlobal.add(scrollDescripcion);
        //RadioButtons
        JPanel panelRadioBotones=new JPanel();
        panelRadioBotones.add(opcion1);
        panelRadioBotones.add(opcion2);
        panelGlobal.add(new JLabel("¿Es vegetariano?",JLabel.RIGHT));
        panelGlobal.add(panelRadioBotones);
        //checkButtons
        JPanel panelCheckBotones=new JPanel();
        panelCheckBotones.add(hobby1);
        panelCheckBotones.add(hobby2);
        panelCheckBotones.add(hobby3);
        panelGlobal.add(new JLabel("Hobbies: ",JLabel.RIGHT));
        panelGlobal.add(panelCheckBotones);
        //lista de opciones
        panelGlobal.add(new JLabel("Estado civil: ",JLabel.RIGHT));
        panelGlobal.add(lista);
        //Boton enviar
        panelGlobal.add(enviar);
        panelGlobal.add(cancelar);
        frame.add(panelGlobal);
        
        //empaquetamos
        frame.pack();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    @Override
    public void actionPerformed(ActionEvent evento)
    {
        //Container f=frame.getContentPane();
        if (evento.getSource()==cancelar)
        {
            System.exit(0);
        }
        else if (evento.getSource()==enviar)
        {
            //Primero limpiamos el panel
            panelGlobal.removeAll();
            panelGlobal.repaint();
            //pruba
            
                    
        }
    }
    public static void main (String ar[])
    {
        FormularioConScrollCheckBottonsETC 
                v1
                =
        new FormularioConScrollCheckBottonsETC ();
    }

}