2010-11-11 17 views
16

Tengo dos JTabbedPanes, JTabbedPane1 ¿Cómo puedo presionar el botón en JTabbedPane2 para mostrar JTabbedPane1?¿Cómo cambiar las pestañas en jTabbedPane haciendo clic en un botón?

Este es el código para 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(); 
    } 

} 

aquí es la clase JPane1:

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

y la clase Jpane2 con el botón en int

JButton test = new JButton ("Pulse"); jp2.add (prueba);

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

} tan problema es aquí en ActionListener de botón en jPanel2

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

alt text

Respuesta

37

Si haces TabbedPane accesible a ButtonHandler usted puede hacer esto:

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

Usted puede hacer esto haciendo JTP (idealmente con un nombre mejor) un atributo privado con un método de obtención o puede ser pasado como un argumento constructor para ButtonHandler.

+0

great: D Acabo de olvidarme del índice. – gumuruh

7

Debe utilizar el método JTabbedPane.setSelectedIndex(int index) con el índice de la ficha deseada.

0

Simplemente agregue que su oyente de acción tiene que estar en la misma clase que sus pestañas.

1

su muy simple: usar el siguiente código:

JTabbedpane.setSelectedIndex(); 

lo que cada vez que el nombre es de ustedes J Panel de sustituirlo por el JTabbedPane arriba y por ejemplo se desea seleccionar las primeras pestañas simplemente poner 0 en el soporte y si desea seleccionar segunda ficha a continuación, poner en el soporte 1, por ejemplo: mi J pestañas panel se llama jtabbedpanel y quiero que la primera pestaña entonces la línea se verá como:

jtabbedpanel.setSelectedIndex(0); 

esperanza esto ayuda !!

-1

Just! Con:

JTabbedPane.setSelectedComponnet(component); 
+1

** De la lista de espera: ** Puedo solicitarle que agregue un poco más de contexto en torno a su respuesta. Las respuestas de solo código son difíciles de entender. Ayudará al solicitante y a los lectores futuros tanto si puede agregar más información en su publicación. Consulte también [Explicación de respuestas basadas en código] (https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers). –

Cuestiones relacionadas