2010-11-11 6 views
16

У меня есть два JTabbedPanes, JTabbedPane1 Как я могу нажать кнопку в JTabbedPane2, чтобы показать JTabbedPane1?Как переключить вкладки в jTabbedPane, нажав кнопку?

Вот код для JTabbedPane:

public class TabbedPane extends JFrame { 

    public TabbedPane() { 


     setTitle("Tabbed Pane"); 
     setSize(300,300); 

     JTabbedPane jtp = new JTabbedPane(); 

     getContentPane().add(jtp); 

     JPanel1 jp1 = new JPanel1();//This will create the first tab 

     JPanel jp2 = new JPanel2();//This will create the second tab 

     //add panel ......... 

    //example usage 
    public static void main (String []args){ 
     TabbedPane tab = new TabbedPane(); 
    } 

} 

здесь класс JPane1:

... JLabel label1 = new JLabel(); 
     label1.setText("This is Tab 1"); 
     jp1.add(label1); 

и класс Jpane2 с кнопкой на Int

JButton тест = новый JButton ("Press"); jp2.add (тест);

ButtonHandler phandler = new ButtonHandler(); 
test.addActionListener(phandler); 
setVisible(true); 

} так проблема здесь в ActionListener кнопки на Jpanel2

class ButtonHandler implements ActionListener{ 
     public void actionPerformed(ActionEvent e){ 
       // what i do now ? to call jpanel 1 show ![alt text][1] 
     } 
} 

alt text

ответ

37

Если вы вкладками панели доступны ButtonHandler вы можете сделать это:

class ButtonHandler implements ActionListener{ 
     public void actionPerformed(ActionEvent e){ 
       jtp.setSelectedIndex(0); 
     } 
} 

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

+0

отлично: D Я просто забыл об индексе. – gumuruh

7

Вы должны использовать метод JTabbedPane.setSelectedIndex(int index) с индексом вкладки вы хотите.

0

Также как добавить, что ваш слушатель действия должен находиться в том же классе, что и ваши вкладки.

1

его очень проста: использовать код ниже:

JTabbedpane.setSelectedIndex(); 

что когда-либо зовут вас J Panel заменить его выше JTabbedPane и, например, вы хотите, чтобы выбрать первые вкладки просто поставить 0 в кронштейне и если вы хотите, чтобы выбрать вторую вкладку затем положить 1 в скобки, например: мой J с вкладками называется jtabbedpanel и я хочу первую вкладку, то строка будет выглядеть так:

jtabbedpanel.setSelectedIndex(0); 

надеюсь, что это помогает !!

-1

Просто! С:

JTabbedPane.setSelectedComponnet(component); 
+1

** Из очереди просмотра: ** Могу ли я попросить вас добавить еще какой-нибудь контекст вокруг вашего ответа. Кодовые ответы трудно понять. Это поможет читателю и будущим читателям, если вы сможете добавить дополнительную информацию в свой пост. См. Также [Объяснение полностью основанных на кодах ответов] (https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers). –

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