Добрый день!Закрыть окна без закрытия Приложение
У меня есть этот код:
private static class ClickListener implements ActionListener {
public ClickListener() {
}
@Override
public void actionPerformed(ActionEvent e) {
JFrame frame = new JFrame();
JLabel label = new JLabel("Opção Indisponivel");
JPanel panel = new JPanel();
frame.add(label, BorderLayout.CENTER);
frame.setSize(300, 400);
JButton button = new JButton("Voltar");
button.addActionListener(new CloseWindowListener());
panel.add(button);
frame.add(panel, BorderLayout.SOUTH);
frame.setVisible(true);
}
}
private static class CloseWindowListener implements ActionListener {
public CloseWindowListener() {
}
@Override
public void actionPerformed(ActionEvent e) {
setVisible(false);
}
}
То, что я хочу сделать, когда я нажимаю на кнопку «Волтар» (который находится в другом окне, а не на «основной» один, как вы можете видеть) он закрывает окна, но не приложение. Строка setVisible дает мне ошибку о том, что на нее нельзя ссылаться статическим контекстом, который я понимаю, потому что мне нужна ссылка на фрейм. Как я могу это решить?
EDIT: Изменен JFrame для JDialog, но все еще нет успеха. Оба окна завершены.
Спасибо заранее, Диого Santos
В вашем графическом интерфейсе должно быть только одно основное окно приложения - один JFrame. Любые другие вспомогательные или зависимые окна должны быть JDialogs, а не JFrames, и закрытие их не может закрыть приложение. –
Также обратите внимание на [Использование нескольких JFrames, Good/Bad Practice?] (Http://stackoverflow.com/questions/9554636) –
@HovercraftFullOfEels Этот вопрос был отмечен как дубликат: http: // stackoverflow.com/questions/4268749/how-to-close-a-jframe-without-closing-the-main-program. Однако я не думаю, что это дубликат, поэтому я снова открыл вопрос. Этот вопрос о 'Строке setVisible дает мне ошибку о том, что на него нельзя ссылаться статическим контекстом, который я понимаю, потому что мне нужна ссылка на фрейм. Как это решить? ' – camickr