dispose() no funciona en GUI ya que la antigua JFrame sigue mostrándose junto con la nueva Frame.
Este es el código. Estoy tratando de pasar de cerrar un JFrame a abrir otro (nuevo) JFrame en interfaces de usuario al hacer clic en un botón. Pero cuando cierro el JFrame antiguo, el nuevo también desaparece.
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try {
if(e.getSource()==btn) {
dispose();
customer s =new customer();
s.setVisible(true);
s.pack();
s.setLocationRelativeTo(null);
s.setExtendedState(JFrame.MAXIMIZED_BOTH);
CloseFrame();
}
if(e.getSource()==btn1) {
dispose();
pet p =new pet();
p.setVisible(true);
p.pack();
p.setLocationRelativeTo(null);
p.setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(e.getSource()==btn2) {
dispose();
Transaction t =new Transaction();
t.setVisible(true);
t.pack();
t.setLocationRelativeTo(null);
t.setExtendedState(JFrame.MAXIMIZED_BOTH);
CloseFrame();
}
}
catch(Exception e1) {
}
}
davy.ai
El problema con este código es que cuando se cierra el antiguo JFrame, el nuevo JFrame también desaparece. Esto podría estar ocurriendo porque el método CloseFrame() se está llamando después de que el nuevo JFrame es creado y mostrado.
Para solucionar este problema, el método CloseFrame() debería ser llamado antes de eliminar el antiguo JFrame. Esto asegurará que el antiguo JFrame se cierre correctamente antes de que el nuevo JFrame sea mostrado.
Aquí está el código actualizado:
Al llamar a CloseFrame() antes de eliminar el antiguo JFrame, puedes asegurarte de que el nuevo JFrame permanezca visible incluso después de que el antiguo JFrame se cierre.