У меня есть кнопка в JFrame, при нажатии она переносит нас в другой кадр.
Я использовал этот код:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
SecondForm secondform = new SecondForm();
secondform.setVisible(true);
setVisible(false);
dispose();
}
Итак, новая рамка открывается и все в порядке. Затем я поместил другую кнопку - во второй кадр - чтобы вернуться к предыдущему кадру. Я использовал этот код:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
MainForm Mform = new MainForm();
Mform.setVisible(true);
setVisible(false);
dispose();
}
Дело в том, что я не думаю, что это правильный способ сделать это. То, что я хочу, это:
- скрыть первый кадр
- показать новый второй
- распоряжаться вторым
- показать снова первый
Есть ли способ сделать это, используя первый экземпляр MainForm и не создавая новый каждый раз, когда я хочу вернуться назад.
Я следил за своей программой, и каждый раз, когда я перемещался вперед и назад по кадрам, и, как я и подозревал, используемый им плунжер продолжает увеличиваться.
Заранее спасибо.
РЕДАКТИРОВАТЬ: У меня есть система входа в систему, и когда пользователь вводит правильные учетные данные, создается новый экземпляр ManiForm.
MainForm Mform = new MainForm();
Mform.setVisible(true);
Это пример, который я хочу использовать. Есть ли способ сделать MForm снова видимым из второй формы?
Прежде всего спасибо за помощь!
Я согласен, что проще не использовать более одного JFrames, но не могли бы вы сказать мне, какой лучший способ сделать то, что я спросил в первом посте?
Ответ Робин дал мне очень хороший ответ, но я не знаю, что там аргументировать *:
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
* new SecondForm().setVisible(true);
}
});
Это из автоматически сгенерированного кода из NetBeans.
Я пытался
new SecondForm(super).setVisible(true);
но я все еще получаю ошибки компиляции. Очевидно, я должен поставить super.something()
, но я не знаю что. Я пробовал много, но не повезло.