У меня было большое приложение для моего клиента в Android. Новый проект - создать одно и то же приложение для ПК на Java. Поэтому я начал развиваться с использованием качелей. При создании в Android я использую классы с действиями, имеющими представления контента, и я могу переключаться между действиями. В java я создал несколько классов, расширяющих JFrame, и я хочу переключаться между ними. Каков правильный путь к этому?
:
new_class.setVisible(true);
old_class.setVisible(false);
правильный путь?
Общий подход с использованием Swing состоял бы в том, чтобы либо объединить все экраны элементов GUI в одном контейнере верхнего уровня с использованием соответствующей стратегии (как правило, CardLayout
, но черт находится в деталях). В этом графическом интерфейсе показаны другие параметры (JSplitPane
и вложенные макеты):
См. также этот ответ для многих других альтернатив.
Для любых других функций, которые логически были бы в другом контейнере, используйте (возможно) модальное диалоговое окно или JOptionPane
. НАПРИМЕР. a выведенный из основного фрейма:
Еще одна вещь, которую следует учитывать, - это то, что Swing (с настольным монитором) позволяет нам предлагать пользователю более богатый набор компонентов. Например, серфинг вокруг файловой системы SD SD-карты обычно достигается путем использования одного списка для каждого каталога и либо изменения содержимого списка или представления при вводе нового каталога. В Swing вы можете использовать для этого один JTree
. Таким образом, гораздо меньше потребностей в "разных экранах" в наборе инструментов GUI для настольных ПК, более чем один, предназначенный для использования на вкладке или телефоне.
Вот дерево, используемое в файловом браузере.
Правильный способ - создать экземпляры из этих JFrames
и установить его видимость.
new Fram1().setVisible(true);
new Fram2().setVisible(true);
CardLayout, but the devil is in the details
???, я не вижу ничего существенного по сравнению с добавлением / удалением JPanels на лету +1CardLayout
хотя, я дам вам это.