30 liens vers 30 fenetres differentes en économisant du code..?

[Résolu]
Signaler
Messages postés
9
Date d'inscription
samedi 22 août 2009
Statut
Membre
Dernière intervention
3 septembre 2009
-
Messages postés
9
Date d'inscription
samedi 22 août 2009
Statut
Membre
Dernière intervention
3 septembre 2009
-
J'ai plusieurs boutons dans une page et j'aimerais qu'ils envoient vers des pages différentes en économisant des lignes de code.

class GoPage implements ActionListener{
public void actionPerformed(ActionEvent e) {
String str = ((JButton)e.getSource()).getText();
str nvFen = new str();
dispose();
}
}

Tous les boutons ont bien sur un .addActionListener(new GoPage());

Evidemment ce code ne marche pas, je ne sais pas comment me servir du nom du bouton pour ouvrir quand on clique dessus un nouvel objet d'une classe qui correspond au nom du bouton.

Si par exemple on clique sur le bouton "Page1" (avec le texte "Page1" dessus) alors la variable str devrait prendre la valeur "Page1" et ensuite on créerait une instance de la classe Ppage1" qui s'appellerait nvFen..
C'est un peu farfelu comme idée je sais mais y a-t-il possibilité de la faire marcher ou alors avez vous une alternative?

Quand vous avez 30 boutons sur une fenêtre en direction de 30 fenêtres différentes faut-il utiliser 30 fois

-----------------------------------------------------------
class GoPage implements ActionListener{
public void actionPerformed(ActionEvent e) {
page vers laquelle se diriger
}
}
-----------------------------------------------------------

??

Il n'y a pas de système plus simples comme dans d'autre langages (liens hypertextes..)

Merci de votre aide..

3 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
125
Salut,

Il te suffit de récupèrer la source de l'événement :
class GoPage implements ActionListener{ 
public void actionPerformed(ActionEvent e) { 
JComponent button = e.getSource();
if ("toto".equals(button.getName()) {
  // clic sur le bouton toto
} else if ("titi".equals(button.getName()) {
  // clic sur le bouton titi
}
} 
} 

______________________________________
DarK Sidious

Salut,

public void actionPerformed(ActionEvent ae) {
// Pour trouver la source de l'action:
    JButton boutonCliqué = (JButton) ae.getSource();
    // Pour obtenir le libellé du bouton:
    String libDuBoutonCliqué = 
                             boutonCliqué.getText();
....
...........



Cordialement,

...\ Dan /...
Messages postés
9
Date d'inscription
samedi 22 août 2009
Statut
Membre
Dernière intervention
3 septembre 2009

Ca rallonge un petit peu mais c'est une bonne alternative. Merci bien à vous deux.