Как использовать setVisible в JFrames? - PullRequest
2 голосов
/ 24 августа 2011

В моей программе у меня есть два JFrame экземпляра.Когда я нажимаю кнопку next, я хочу показать следующий кадр и скрыть текущий кадр.Поэтому я использую this.setVisible(false) и новый Next().setVisible(true).Но в окне Next, если я нажимаю кнопку back, я хочу, чтобы предыдущий кадр снова стал видимым, а следующий кадр должен быть завершен (что означает, что его необходимо закрыть).

Существуют ли специальные методы для этого?Как мне это сделать?

Ответы [ 5 ]

6 голосов
/ 24 августа 2011

Рассмотрите возможность использования CardLayout вместо поиска количества JFrames . Тогда ..

  • потребуется только один JFrame
  • Любое из следующих / обратных действий будет переключаться только между карточками

В этом форуме много примеров - например, как показано здесь .

image image

3 голосов
/ 24 августа 2011

Это странный и необычный графический интерфейс. Вместо этого я предлагаю запустить JFrame для основного графического интерфейса, и когда пользователь хочет выполнить поиск, введите JOptionPane (или модальное JDialog), чтобы принять детали для поиска. Это не будет иметь эффекта, описанного выше, но будет следовать «пути наименьшего удивления» для конечного пользователя.

2 голосов
/ 24 августа 2011

Вы можете поместить JFrames в структуру данных списка и сохранить ссылку на текущую позицию в соответствии с отображаемым окном. Таким образом, будет легко перейти к следующему и предыдущему. Но обратите внимание, что каждый кадр, добавленный в список, будет использовать память и будет иметь свое состояние, когда вы поместили его в список.

Если вы пытаетесь создать мастер, подобный пользовательскому интерфейсу, вам следует поискать здесь Sun (oracle) учебник .

2 голосов
/ 24 августа 2011

Если вы хотите уничтожить JFrame, высвободив все связанные ресурсы, вы должны вызвать dispose () метод для него.

0 голосов
/ 19 сентября 2014

создайте экземпляр вашего главного окна в окне next () ... и используйте тот же метод, который вы выбрали, чтобы скрыть главное окно, например, если ваше главное окно названо gui, тогда мы должны сделать следующее.

gui obj = new gui();

и если вы сейчас нажмете кнопку «назад», сделайте это также

this.setVisibility(false);
obj.setVisibility(true);

- это все, что вам нужно.

удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...