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

Résolu
ehochedez Messages postés 9 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 3 septembre 2009 - 22 août 2009 à 17:40
ehochedez Messages postés 9 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 3 septembre 2009 - 22 août 2009 à 23:58
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
22 août 2009 à 20:21
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
3
Utilisateur anonyme
22 août 2009 à 20:37
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 /...
0
ehochedez Messages postés 9 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 3 septembre 2009
22 août 2009 à 23:58
Ca rallonge un petit peu mais c'est une bonne alternative. Merci bien à vous deux.
0
Rejoignez-nous