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