Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/08/2010, 15:50
nosek159
 
Fecha de Ingreso: octubre-2008
Mensajes: 118
Antigüedad: 15 años, 7 meses
Puntos: 2
buena organizacion de las clases

Hola a todos,

Hace poco empece con java y ando un poco liado, estoy haciendo el tipico programit del video club pero tengo unas cuantas dudas sobre la estructura, y lo tengo estructurado de la siguiente manera:

Principal:

Código:
public class Principal {

    public static void main(String[] args) {

       Ventanas aplicacion = new Ventanas();
       aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

    }

}
Ventanas:

Código:
public class Ventanas extends JFrame {

    private JButton salir;
    private JButton pelis;
    private JButton clientes;
    private JButton devoluciones;
    private JButton alquileres;
    private JPanel panelPrincipal;

    public Ventanas(){
        super("VideoClub");

        this.getContentPane();

        agregarPanel(generarPanelPrincipal());
        this.setSize(1000, 700);
        this.setVisible(true);
    }

    private JPanel generarPanelPrincipal(){
        GridBagConstraints constraints = new GridBagConstraints();
        panelPrincipal = new JPanel();
        panelPrincipal.setLayout (new GridBagLayout());

        // clientes
        clientes=new JButton("Gestionar clientes");
        clientes.setName("Gestionar clientes");
        clientes.addActionListener(new EscuchaBotones());

        constraints.gridx = 0;
        constraints.gridy = 0;
        constraints.gridwidth = 2;
        constraints.gridheight = 2;
        constraints.anchor = GridBagConstraints.SOUTHWEST;
        constraints.weighty = 1.0;
        panelPrincipal.add (clientes, constraints);

        ....

        return panelPrincipal;
    }

    public void agregarPanelClientes(){

        removerPanel();
        agregarPanel(generarPanelClientes());

    }
    private JPanel generarPanelClientes(){


        return null;
    }

    private void removerPanel(){
        this.removeAll();
    }

    private void agregarPanel(JPanel panel){
        this.add(panel);
    }

}
EscuchaBotones:

Código:
public class EscuchaBotones implements ActionListener{
      // creamos la clase que escucha a los botones
        public void actionPerformed(ActionEvent e){
            String s = e.getActionCommand();
            String nombre=((JButton)e.getSource()).getName();
            System.out.println(nombre);
          if (nombre.equals("Gestionar clientes")){

// aqui deberia de llamar al metodo agregarPanelClientes de la clase Ventanas

          } else if (nombre.equals("Gestionar pelis")){

          } else if (nombre.equals("Gestionar alquileres")){

          } else if (nombre.equals("Gestionar devoluciones")){

          }

        }
    }
Lo que yo queria hacer es que al pulsar el boton Gestionar clientes este llame al metodo agregarPanelClientes de la clase Ventas y este ya se encargue de eliminar el JPanel, generar el nuevo JPanel con los botones para clientes y demas y agregar el JPanel de clientes.
Esto nose hacerlo ya que para llamar a estos metodos deberia de tener el objeto en la clase EscuchaBotones y no es asi, tmp nose como pasarselo.

Mi pregunta es: Esto se hace asi, agregando y quitando paneles? y si es asi, ¿lo tengo bien estructurado? y ¿como soluciono esto? y si no es asi, ¿como se hace xD?

Gracias x adelantado y gracias x vuestro tiempo.

Saludos,
Dani.