Java GUI Design Советы - PullRequest
       25

Java GUI Design Советы

3 голосов
/ 11 июля 2009

Я программирую свое самое первое приложение с графическим интерфейсом на Java с использованием инфраструктуры Swing. Я кодировал основную систему входа в систему с использованием классов JTextField, JPasswordField и JButton. Теперь я пишу метод actionPerformed для кнопки, который я хочу удалить эти элементы, так как они больше не нужны, но я не уверен в том, как лучше всего этого достичь.

Я рассмотрел использование метода setVisible этих компонентов, который, кажется, работает, но я уверен, что это не самый предпочтительный способ сделать это. Извините, если это глупый вопрос ..

Ответы [ 5 ]

5 голосов
/ 11 июля 2009

Диалог входа в систему отделен от основного окна. Когда вы закончили вход в систему, просто скройте диалог входа в систему.

Вы также можете сохранить свои текстовые поля и кнопки в поле класса, а затем вызвать remove (Component) для каждого из них.

1 голос
/ 12 июля 2009

У вас может быть логин JPanel, который настраивается и отображается, и после проверки пароля пользователя вы можете показать свое приложение JPanel. Это легко сделать с помощью CardLayout.

Он рассматривает каждый компонент в контейнере как карту. Одновременно видна только одна карта, и контейнер действует как стопка карт.

Вот учебник .

Используя CardLayout, ваш код может выглядеть примерно так:

переменные экземпляра:

static final String LOGINPANEL = "LOGINPANEL";
static final String MAINPANEL = "MAINPANEL";
JPanel cards;

где создаются ваши панели:

JPanel loginPanel = new JPanel();
//add your stuff to the login panel
JPanel mainPanel = new JPanel();  
//add your stuff to the main panel

cards = new JPanel(new CardLayout());
cards.add(loginPanel, LOGINPANEL); 
cards.add(mainPanel, MAINPANEL);

тогда, когда ваш пароль подтвержден, в ветке AWT вы можете сделать это:

CardLayout cl = (CardLayout)(cards.getLayout());
cl.show(cards, MAINPANEL);
1 голос
/ 11 июля 2009

Как правило, вы хотели бы сделать это в одной строке кода. Итак, вам следует подумать об упаковке разных вещей, которые вы хотите показать или скрыть в JPanel Затем вы можете динамически отображать или скрывать JPanels.

0 голосов
/ 12 июля 2009

Я предлагаю вам использовать JDialog для входа в систему. После успешного входа в систему вам просто нужно вызвать «dialog.dispose ()», а затем загрузить свой интерфейс. Если приложение, которое вы создаете, должно отображать несколько окон, вам следует использовать JDesktopPane (http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JDesktopPane.html)

0 голосов
/ 11 июля 2009

Я согласен с предложением JPanel. Добавьте компоненты входа в JPanel, а затем скрыть JPanel после входа в систему.

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