Interagir avec des boutons d'une autre classe
Résolu
Qoodsy
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour à tous, c'est toujours moi ! :)
Cette fois, je possède une classe main en JFrame qui affiche d'autres classes qui sont des JPanel grâce à un setContentPane().
Mon objectif est de communiquer entre ces classes JPanel afin de changer l'écran qui s'affichera dans la classe main.
Mon problème est le suivant : comment interagir avec les boutons de ces classes ?
Voici mon code, si ça peut aider.
Si je clique sur le bouton "connect", ma classe main change son setContentPane pour afficher la classe EcranConnection.
Si je clique sur le bouton "sub", ma classe main change son setContentPane pour afficher la classe EcranInscription.
Si je clique sur le bouton "info", ma classe main change son setContentPane pour afficher une autre classe.
Cette fois, je possède une classe main en JFrame qui affiche d'autres classes qui sont des JPanel grâce à un setContentPane().
Mon objectif est de communiquer entre ces classes JPanel afin de changer l'écran qui s'affichera dans la classe main.
Mon problème est le suivant : comment interagir avec les boutons de ces classes ?
Voici mon code, si ça peut aider.
public class Main extends JFrame {
private EcranDepart dep = new EcranDepart();
private EcranInscription inscr = new EcranInscription();
private EcranConnexion con = new EcranConnexion();
public static void main(String[] args) {
Main launch = new Main();
}
public Main() {
this.setTitle("Ma fenetre");
this.setSize(800, 600);
this.setContentPane(dep);
this.setVisible(true);
}
}
Si je clique sur le bouton "connect", ma classe main change son setContentPane pour afficher la classe EcranConnection.
Si je clique sur le bouton "sub", ma classe main change son setContentPane pour afficher la classe EcranInscription.
Si je clique sur le bouton "info", ma classe main change son setContentPane pour afficher une autre classe.
public class EcranDepart extends JPanel {
private JPanel pantop;
private JPanel panmid;
private JPanel panmid_topinv;
private JPanel panbot;
private JButton connect;
private JButton sub;
private JButton info;
public EcranDepart() {
this.setLayout(new BorderLayout());
pantop = new JPanel();
pantop.setPreferredSize(new Dimension(800, 0));
this.add(pantop, BorderLayout.NORTH);
panmid = new JPanel();
panmid.setBackground(Color.red);
this.add(panmid, BorderLayout.CENTER);
panmid_topinv = new JPanel();
panmid_topinv.setPreferredSize(new Dimension(400, 150));
panmid_topinv.setBackground(Color.red);
panmid.add(panmid_topinv);
connect = new JButton("Se connecter");
connect.setPreferredSize(new Dimension(400, 100));
sub = new JButton("S'incrire");
sub.setPreferredSize(new Dimension(400, 100));
panmid.add(connect);
panmid.add(sub);
panbot = new JPanel();
panbot.setBackground(Color.white);
panbot.setPreferredSize(new Dimension(800, 50));
panbot.setLayout(new BorderLayout());
this.add(panbot, BorderLayout.SOUTH);
info = new JButton("i");
info.setPreferredSize(new Dimension(50,50));
panbot.add(info, BorderLayout.EAST);
}
}
A voir également:
- Interagir avec des boutons d'une autre classe
- Comment réinitialiser un téléphone avec les boutons - Guide
- A quoi servent les boutons de couleur sur une telecommande - Guide
- Application pour reconnaître les boutons - Accueil - Outils
- Comment faire une capture d'écran sur un samsung sans bouton ? - Guide
- Comment déverrouiller un samsung avec les boutons - Guide
1 réponse
Salut,
Aucun événement n'est associé à tes boutons.
extends ActionListener à EcranDepart.
addActionListener(this) pour chacun de tes boutons.
Tu dois implémenter la méthode actionPerformed(ActionEvent e).
Tu peux récupérer l'origine du déclencheur de l'événement avec e.getSource() (attention, c'est un JComponent).
Tu peux aussi associer un nom à chacun de tes boutons (.setName(String name)) et les détecter en faisaint e.getName() (je sais pas si ça marche pour tous les JComponent).
Aider est mon nindo
Aucun événement n'est associé à tes boutons.
extends ActionListener à EcranDepart.
addActionListener(this) pour chacun de tes boutons.
Tu dois implémenter la méthode actionPerformed(ActionEvent e).
Tu peux récupérer l'origine du déclencheur de l'événement avec e.getSource() (attention, c'est un JComponent).
Tu peux aussi associer un nom à chacun de tes boutons (.setName(String name)) et les détecter en faisaint e.getName() (je sais pas si ça marche pour tous les JComponent).
Aider est mon nindo
Je cherche à ce que quand je clique sur le bouton "connect" du JPanel EcranDepart.java, le setContentPane() de la JFrame Main.java change et affiche le JPanel EcranConnect.java
Je ne sais pas si c'est assez clair ^^