2013-04-22 2 views
0

Могу ли я использовать JButtons в качестве вкладок? Поскольку JTabbedPane не может содержать один и тот же компонент в нескольких вкладках, будет ли способ, чтобы JButton был вкладкой? Я знаю, что похоже, что tiDE (Website) использует JButtons в качестве вкладки. Как мне это сделать?Использование JButtons в качестве вкладок

Я мог бы сделать что-то вроде этого

JButton newTab = new JButton("New Tab"); 
newTab.addActionListener(
    new ActionListener() { 
    public void actionPerformed(ActionEvent evt) { 
     JButton tab = new JButton("Tab 1"); 
     JToolBar.add(tab) 
     tab.addActionListener(
      new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       makeTextAreaTab(); 
      } 
      } 
     ); 
    } 
    } 
); 

Но, как бы я сделать метод makeTextAreaTab()? Он должен быть тем же компонентом, что и мой другой редактор (JTextArea), и иметь те же функции, что и JTabbedPane.

+0

В то время как с Swing вы не можете поместить один и тот же компонент в несколько контейнеров, вы можете иметь разные компоненты (здесь JButtons) использовать одно и то же основное ядро ​​(здесь AbstractAction), так что вы эффективно используете один и тот же JButton через «вкладки», на JTabbedPane. –

+0

Относительно '' Но, как бы я сделал метод makeTextAreaTab()? Он должен был быть тем же компонентом, что и мой другой редактор (JTextArea), и иметь те же функции, что и JTabbedPane. "' - пожалуйста, уточните, что вы пытаются сделать, потому что, основываясь на вашем тексте выше, извините, но я понятия не имею. –

+0

Извините, что не уточнил. Я бы хотел, чтобы кнопки отображали функциональность вкладок. Нажмите на одну кнопку, она переместится в один редактор. Нажмите на другую кнопку, она переместится в другой редактор. – user2228462

ответ

0

Вы заявляете в комментарии:

Я хотел бы быть в состоянии иметь кнопки служат функциональные вкладки. Нажмите на одну кнопку, она переместится в один редактор. Нажмите на другую кнопку, она переместится в другой редактор.

Рассмотрите возможность использования CardLayout для этого, где ваши JButtons (или, возможно, лучше, JComboBox) говорит CardLayout-используя контейнер, который «карты» (какой компонент - здесь сочетание JScrollPane/JTextArea) для отображения.

+0

Спасибо. Я смотрю на это. – user2228462

+0

OK, макет карты работает, но единственная проблема заключается в том, что когда я редактирую JTextArea на одной вкладке, с другой, она содержит изменения. – user2228462

Смежные вопросы