Ayuda con JTabbedPane...

Tengo un menú en Java,este menú consta de puros JTabbedPane con sus respectivos JPanel, pero quiero que la ultima pestaña me muestre un mensaje de dialogo diciendo "Adiós" con un JOptionPane.showMessageDialog, ya intente hacer un JFrame con el dialogo pero me lo muestra al principio del menu y al momento de darle Aceptar, los demas componentes no se cargan, por favor necesito su ayuda... Gracias!!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de r3v0lt

Hola =)

Bueno haber si te entendi ... =p
Primero si quieres tener un menu en Java puedes usar el JMenu [JMenuItem] etc ...

en cuestion a tu hack

si lo que quieres es q cuando el usuario seleccione un Tab determinado y mandarle un msg?

puedes agregarle un ChangeListener a tu JTabbedPane

ya sea en un inner class o un nuevo objeto

ejemplo :

jTabbedPane1.addChangeListener(new javax.swing.event.ChangeListener() {
    public void stateChanged(javax.swing.event.ChangeEvent evt) {
        miEvento(evt);
    }
});

public vooid miEvento(javax.swing.event.ChangeEvent evt){
    // esto registrara un evento cada que el usuario seleccione un tab
   // si e; tab seleccionado es  el 4
   // o si es el ultimo usa jTabbedPane1.getTabCount()
    if(jTabbedPane1.getSelectedIndex() == 3){
            // has algo
     }
}

Imagen de shg_666

Grax, pero...

Grax por la ayuda r3v0lt, pero de ahi surge otra duda, hago la declaracion del evento de la pestaña (jTabbedPane1.addChangeListener(new javax.swing.event.ChangeListener() ...) pero al momento de crear el metodo miEvento, dentro del if me marca error, por que sera???, me dice cannot find symbol :O...

Imagen de shg_666

Solucionado...

Ya solucione lo del JOptionPane con una pestaña, les dejo el codigo por si a alguien le sirve

JTabbedPane1.addChangeListener(new javax.swing.event.ChangeListener() {
                                public void stateChanged(javax.swing.event.ChangeEvent evt) {
                                    mensaje(evt);
                                }
                            });  
     
                             public void mensaje(ChangeEvent evt){
                                int sel = 7; // Ultima pestaña
                           JTabbedPane seleccion = (JTabbedPane) evt.getSource();
                            if(seleccion.getSelectedIndex() == sel){
                               JOptionPane.showMessageDialog(this, "Adios", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                             }
                        }

Solo que ahora quiero hacer un tipo de refresh solo para las pestañas ya que al momento de darle Aceptar al cuadro de dialogo, tengo que seleccionar otra pestaña y de nuevo la pestaña del cuadro de dialogo, si alguien me podria ayudar con esto ultimo, muchas gracias r3v0lt y gracias a todos x su ayuda!!!...

Imagen de r3v0lt

Hola

Que paso amigo. haber si te entendi otra vez XD

Quieres que cada que el usuario de en un tab se refresque el contenido del mismo ?
re. podrias usar un swtich (seleccion.getSelectedIndex()) etc ...

y ya dentro de los case, puedes mandar hacer las modificaciones que quieras a cada panel (tab)
ya que reacomodaste o eliminaste componentes
dale un .repaint() al panel.
si solo vas a a cambiar texto de un JLabel ,JTextField o models de un JList, JTable etc .... pues no ocupas mas que
cambiarselo con el metodo aporpiado ...

Si no es a lo que te referias, puedex explicarte un poquito mejor

Imagen de shg_666

Hola ;X

Haber, creo que no me explique ja... Yo tengo 7 pestañas, 6 muestran paneles al lado derecho, pero la pestaña 7 solo muestra un cuadro de dialogo, el cual dice "Adios" (ya solucionado ;)), como es un cuadro de dialogo simple, solo muestra el boton de Aceptar... pero al darle Aceptar y querer darle click a esa pestaña nuevamente, ya no me muestra el Cuadro de Dialogo, entonces para que me lo vuelva a mostrar tengo ke darle klick a otra pestaña, y de nuevo a la pestaña 7 para que me muestre el Cuadro nuevamente... Entonces quisiera ver si hay un tipo de refresh o algo asi para las pestañas, un repaint no lo kreo x k los paneles con sus respectivas pestañas funcionan bien!!!... Espero haya sido comprensible mi redaccion (:P)... Gracias...

Imagen de Shadonwk

el listener para las

el listener para las pestañas, solo escucha el cambio del indice es por eso que tienes que hacer clic en otra pestaña y luego en la que quieres para que te vuelva a mostrar, y segun yop no hay de otra amenos que dentro del listener que detecta este cambio agregues un listener del mouse y detectes el clik, pero eso ya es otro caso...