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:
Ventanas:public class Principal { public static void main(String[] args) { Ventanas aplicacion = new Ventanas(); aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } }
Código:
EscuchaBotones: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); } }
Código:
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.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")){ } } }
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.