SWING : JTabbedPane et addChangeListener

guiguimac Messages postés 85 Date d'inscription mercredi 29 août 2001 Statut Membre Dernière intervention 22 avril 2006 - 9 juin 2003 à 18:46
Softbyte Messages postés 4 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 8 avril 2004 - 8 avril 2004 à 23:07
bonjour,

j'ai un objet de JTabbedPane et quand je change d'onglet séléctionné grace à la souris, j'aimerai bien savoir lequel a été cliqué.

qq'un se serait-il déjà servi de addChangeListener et pourrait m'expliquer comment s'en servir ?

merci d'avance !

guiguimac

4 réponses

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
10 juin 2003 à 09:24
salut,
a tout moment tu peux faire un getSelectedIndex qui te renvoit l index du tab selectionné ou un getSelectedComponent qui te retourne carrement le composant
Duss
0
Softbyte Messages postés 4 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 8 avril 2004
27 juil. 2003 à 12:21
Ajouter un écouteur avec 'addChangeListener' est une très bonne solution.

Comment intercepter ce changement:

Créé un classe d'écoute ex.:

public class EcouteJTabbedPane implements ChangeListener
{
public void stateChanged(ChangeEvent e)
{
// Le code
System.out.println("Changement");
}
}

Attention il faut faire import de javax.swing.event.*;

Ensuite créer une instance de cette classe et ajouter l'écouteur:

EcouteJTabbedPane ecouteJTabbedPane= new EcouteJTabbedPane();

jtabbedPane.addChangeListener(ecouteJTabbedPane);

Un clique sur un onglet exécutera 'Le code'

A+ :)
0
sebdemon Messages postés 7 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 15 mars 2004
13 mars 2004 à 00:19
Boujour,

je génére plusieurs onglets à l'aide d'un objet JTabbedPane.

Je souhaiterais savoir si il est possible de fermer un onglet précis en cliquant par exemple sur croix à l'intérieur de l'onglet. Métohdes ou sources bienvenue...
Merci d'avance ;)
0
Softbyte Messages postés 4 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 8 avril 2004
8 avril 2004 à 23:07
Bonjour, voici une exemple faire disparaitre un onglet (si fermer est le faire disparaitre!)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class jtabbedpane02 extends JPanel {
public jtabbedpane02() {
jtabbedPane = new JTabbedPane();
final JPanel panel1 = new JPanel();
final JPanel panel2 = new JPanel();

//Onglet 'Pan1'
JLabel label1 = new JLabel("Panneau 1");
panel1.add(label1);
//Bouton pour supprimer
JButton bouton1 = new JButton("Ajoute Pan2");
bouton1.addActionListener(new ActionListener (){
public void actionPerformed(ActionEvent e){
// Ajouter Pane2
jtabbedPane.addTab("Pan2", panel2);
}
});
panel1.add(bouton1);
jtabbedPane.addTab("Pan1", panel1);

//Onglet 'Pan2'
JLabel label2 = new JLabel("Panneau 2");
//Bouton pour supprimer
JButton bouton2 = new JButton("Supprimer");
bouton2.addActionListener(new ActionListener (){
public void actionPerformed(ActionEvent e){
// Supprime l'onglet 2
jtabbedPane.remove(1);
}
});

panel2.add(label2);
panel2.add(bouton2);
jtabbedPane.addTab("Pan2", panel2);

//Sélection de l'onglet N°2
jtabbedPane.setSelectedIndex(1);

//Ajoute le panneau d'onglets au panneau
setLayout(new GridLayout(1, 1));
add(jtabbedPane);
}

public static void main(String[] args) {
JFrame frame = new JFrame("JTabbedPane");

frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});

frame.getContentPane().add(new jtabbedpane02(), BorderLayout.CENTER);
frame.setSize(400, 125);
frame.setVisible(true);
}
private JTabbedPane jtabbedPane;
}

A+ :)
0