У меня есть следующая структура моей программы: внешний класс MainWindow
, внутренний класс LoginWindow
и частный JFrame
член z
;Java Swing: Внутренний класс JFrame закрывает главное окно при закрытии
class MainWindow extends JFrame
{
private JFrame z;
class LoginWindow extends JFrame
{...}
public LoginWindow makeLogin()
{
return new LoginWindow();
}
MainWindow()
{
...
z=new JFrame();
z.setVisible(true);
}
}
public class GUI
{
public static void main(String[] args)
{
MainWindow mainWindow=new MainWindow();
mainWindow.setVisible(true);
MainWindow.LoginWindow loginWindow=mainWindow.makeLogin();
loginWindow.setVisible(true);
}
}
Главный метод возвращает три окна. Когда я закрываю окно z
, только z
закрывается. Но когда я закрываю MainWindow
/LoginWindow
, все закрывается. Почему это происходит? Почему закрытие частного члена JFrame не закрывает MainWindow, закрывая его внутренний класс, объект закрывает все? Как я могу сделать так, чтобы закрытие LoginWindow не закрывало другие два (при закрытии MainWindow все еще закрывает все).
Проверьте ответ camickr в [dup] (http://stackoverflow.com/questions/4268749/how-to-close-a-jframe-without-closing-the-main-program). –