Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/10/2012, 15:50
javigarciarodrhy
 
Fecha de Ingreso: agosto-2012
Mensajes: 15
Antigüedad: 12 años, 5 meses
Puntos: 0
Problema con MouseEvent

Hola:
He intentado hacer una especie de menú desplegable de una forma un tanto rústica y me ha salido.
El problema es que cuando pulso el botón habitaciones, se me abre el JFrame pantallaHabitaciones, pero si lo cierro y lo vuelvo a abrir, se me abren 4 frames iguales de pantallaHabitaciones, y si le vuelvo a dar, 12...
No entiendo.
Os dejo código, gracias.
Código:
administrador.addMouseListener(new MouseAdapter() {
                @Override
            public void mouseEntered (MouseEvent e) {
                datos.setVisible(true);
                configuracion.setVisible(true);
                informes.setVisible(true);
                habitaciones.setVisible(false);
                servicios.setVisible(false);
                ofertas.setVisible(false);
            }
                @Override
                public void mouseExited (MouseEvent e) {
                    datos.setVisible(false);
                    datos.addMouseListener(new MouseAdapter() {
                        @Override
                        public void mouseEntered (MouseEvent e) {
                            datos.setVisible(true);
                            habitaciones.setVisible(true);
                            servicios.setVisible(true);
                            ofertas.setVisible(true);
                            configuracion.setVisible(false);
                            informes.setVisible(false);
                        }
                        @Override
                        public void mouseExited (MouseEvent e) {
                            datos.setVisible(false);
                            habitaciones.setVisible(false);
                            habitaciones.addMouseListener(new MouseAdapter() {
                                @Override
                                public void mouseEntered (MouseEvent e) {
                                    habitaciones.setVisible(true);
                                    datos.setVisible(true);
                                    servicios.setVisible(true);
                                    ofertas.setVisible(true);
                                }
                                @Override
                                public void mouseExited (MouseEvent e) {
                                    datos.setVisible(false);
                                    servicios.setVisible(false);
                                    ofertas.setVisible(false);
                                    habitaciones.setVisible(false);
                                }                         
                                @Override
                                public void mouseClicked (MouseEvent evt) {
                                    JFrame pantallaHabitaciones = new JFrame("Administración de datos de habitaciones");
                                    JFrame.setDefaultLookAndFeelDecorated(true);
                                    pantallaHabitaciones.setSize(500, 500);
                                    pantallaHabitaciones.setLocationRelativeTo(null);
                                    pantallaHabitaciones.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                                    pantallaHabitaciones.setVisible(true);
                                }
                            });
                            servicios.setVisible(false);
                            servicios.addMouseListener(new MouseAdapter() {
                                @Override
                                public void mouseEntered (MouseEvent e) {
                                    habitaciones.setVisible(true);
                                    datos.setVisible(true);
                                    servicios.setVisible(true);
                                    ofertas.setVisible(true);
                                }
                                @Override
                                public void mouseExited (MouseEvent e) {
                                    datos.setVisible(false);
                                    servicios.setVisible(false);
                                    ofertas.setVisible(false);
                                    habitaciones.setVisible(false);
                                }
                                @Override
                                public void mouseReleased (MouseEvent e) {
                                    
                                }
                            });
                            ofertas.setVisible(false);
                            ofertas.addMouseListener(new MouseAdapter() {
                                @Override
                                public void mouseEntered (MouseEvent e) {
                                    habitaciones.setVisible(true);
                                    datos.setVisible(true);
                                    servicios.setVisible(true);
                                    ofertas.setVisible(true);
                                }
                                @Override
                                public void mouseExited (MouseEvent e) {
                                    datos.setVisible(false);
                                    servicios.setVisible(false);
                                    ofertas.setVisible(false);
                                    habitaciones.setVisible(false);
                                }
                                @Override
                                public void mouseReleased (MouseEvent e) {
                                    
                                }
                            });
                        }
                    });
                    configuracion.setVisible(false);
                    informes.setVisible(false);
                    habitaciones.setVisible(false);
                    servicios.setVisible(false);
                    ofertas.setVisible(false);
                    
                }
        });
P.D.: he probado a hacer pantallaHabitaciones en una clase a parte y llamar desde el mousseClick a esa clase y pasa lo mismo... no encuentro la razón del fayo. Me gustaría hacerlo en otra clase para sacarlo de ahí y no complicarme pero...Grax