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.