Компоненты автозагрузки JTabbedPane

Обратите внимание, что я еще не пробовал это тестировать, я просто готовлюсь к более подробному изучению.

Я создаю приложение адресной книги и хочу сделать следующее:

  1. Пользователь нажимает на имя человека в списке.
  2. Откроется новая вкладка с редактируемыми JTextField / JTextArea / и т. д.
  3. Пользователь сохраняет/закрывает вкладку.

Изучая учебные пособия в Google, было предложено использовать такой метод, как:

public void createPage1()
{
    panel1 = new JPanel();
    panel1.setLayout(new BorderLayout());

    panel1.add(new JButton("North"), BorderLayout.NORTH);
    panel1.add(new JButton("South"), BorderLayout.SOUTH);
    panel1.add(new JButton("East"), BorderLayout.EAST);
    panel1.add(new JButton("West"), BorderLayout.WEST);
    panel1.add(new JButton("Center"), BorderLayout.CENTER);
}

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

Однако моя программа позволила бы одновременно открывать неизвестное количество вкладок, каждая из которых содержит одни и те же компоненты в одном и том же порядке. Это, очевидно, делает другую альтернативу вышеописанной предпочтительной.

Как это можно сделать?


person Aaron    schedule 02.09.2013    source источник
comment
Вы не используете JTabbedPane? Опубликуйте правильный код и прочитайте учебники по оракулу.   -  person nachokk    schedule 03.09.2013
comment
@nachokk Спасибо, что нашли время, чтобы прочитать мой вопрос.   -  person Aaron    schedule 03.09.2013
comment
@Aaron Аарон Вы говорите о вкладках, но не упоминаете, как именно вы собираетесь это сделать. С JTabbedPane вы просто продолжите добавлять представления в JTabbedPane, каждое представление будет автономным контейнером, содержащим все необходимые компоненты, необходимые для этой вкладки.   -  person MadProgrammer    schedule 03.09.2013
comment
непонятно, что вы спрашиваете   -  person nachokk    schedule 03.09.2013


Ответы (1)


В ListSelectionListener создайте и add() новую панель. В этом полном примере новая панель добавлена ​​в кнопку Добавить ActionListener. Вашему методу createPane() потребуются параметры, необходимые для заполнения одной адресной карты.

person trashgod    schedule 03.09.2013
comment
TabComponentsDemo показывает, как добавить кнопки закрытия. - person trashgod; 03.09.2013