• Domingo 17 de Noviembre de 2024, 21:24

Autor Tema:  Jtabbedpane's Agregar Listener Al Seleccionar..  (Leído 2224 veces)

Blizknight

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
Jtabbedpane's Agregar Listener Al Seleccionar..
« en: Martes 2 de Enero de 2007, 16:41 »
0
Hola a todos... La duda esta en el titulo... como se que pestaña se ha seleccionado ??
digamos que salga un mensaje cada ves que seleccionemos cualquier ficha... si seleccionamos la primera sale x mensaje... la segunda otro... XP

alguien me da una mano  :(

aca dejo un codigo >.< ...
saludos y gracias

Código: Text
  1. import javax.swing.JTabbedPane;
  2. import javax.swing.ImageIcon;
  3. import javax.swing.JLabel;
  4. import javax.swing.JPanel;
  5. import javax.swing.JFrame;
  6.  
  7. import java.awt.*;
  8. import java.awt.event.*;
  9.  
  10. public class TabbedPaneDemo extends JPanel {
  11.     public TabbedPaneDemo() {
  12.         ImageIcon icon = new ImageIcon(&#34;images/middle.gif&#34;);
  13.         JTabbedPane tabbedPane = new JTabbedPane();
  14.  
  15.         Component panel1 = makeTextPanel(&#34;Blah&#34;);
  16.         tabbedPane.addTab(&#34;One&#34;, icon, panel1, &#34;Does nothing&#34;);
  17.         tabbedPane.setSelectedIndex(0);
  18.  
  19.         Component panel2 = makeTextPanel(&#34;Blah blah&#34;);
  20.         tabbedPane.addTab(&#34;Two&#34;, icon, panel2, &#34;Does twice as much nothing&#34;);
  21.  
  22.         Component panel3 = makeTextPanel(&#34;Blah blah blah&#34;);
  23.         tabbedPane.addTab(&#34;Three&#34;, icon, panel3, &#34;Still does nothing&#34;);
  24.  
  25.         Component panel4 = makeTextPanel(&#34;Blah blah blah blah&#34;);
  26.         tabbedPane.addTab(&#34;Four&#34;, icon, panel4, &#34;Does nothing at all&#34;);
  27.  
  28.         //Add the tabbed pane to this panel.
  29.         setLayout(new GridLayout(1, 1));
  30.         add(tabbedPane);
  31.     }
  32.  
  33.    Component makeTextPanel(String text) {
  34.         JPanel panel = new JPanel(false);
  35.         JLabel filler = new JLabel(text);
  36.         //filler.setHorizontalAlignment(JLabel.CENTER);
  37.        // panel.setLayout(new GridLayout(1, 1));
  38.         panel.add(filler);
  39.         return panel;
  40.     }
  41.  
  42.     public static void main(String[] args) {
  43.         JFrame frame = new JFrame(&#34;TabbedPaneDemo&#34;);
  44.  
  45.         frame.addWindowListener(new WindowAdapter() {
  46.             public void windowClosing(WindowEvent e) {System.exit(0);}
  47.         });
  48.  
  49.         frame.getContentPane().add(new TabbedPaneDemo(),
  50.                                    BorderLayout.CENTER);
  51.         frame.setSize(400, 125);
  52.         frame.setVisible(true);
  53.     }
  54. }
  55.  
  56.  

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Jtabbedpane's Agregar Listener Al Seleccionar..
« Respuesta #1 en: Miércoles 3 de Enero de 2007, 12:17 »
0
Hola...

Como puedes ver en el API de Java, el JTabbedPane tiene un método getSelectedComponent() que te indica qué Componente se ha seleccionado (puedes distinguirlos por el nombre, mira en Component, setName y getName).

También tienes un getSelectedIndex(), que te indica en qué posición está la pestaña seleccionada.

Si todo esto no te vale, el evento ChangeEvent que se genera cada vez que cambias de pestaña tiene un dato source, que indica qué componente generó el evento. Necesitarás listeners (mira en JTabbedPane el método addChangeListener y la clase ChangeListener para hacerte una idea)



Espero que te sirva.


Un saludo.




Silverfox

escape

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Jtabbedpane's Agregar Listener Al Seleccionar..
« Respuesta #2 en: Viernes 5 de Enero de 2007, 06:02 »
0
por pestaña seleccionada usas el getSelectedComponent()....si quieres un mensaje es fácil: usa la clase JOptionPane...revisa la API es súper fácil. aparecen varios métodos, pero la utilidad es palpable...cualquier duda la posteas.