Comment passer une donnée d'un panneau à un autre
Bonjour,
Bon tout d'abord mon titre de topic est assez flou j'en conviens mais je vais essayer de l'expliquer mieux ici.
En fait pour mon projet de stage je dois récupérer plusieurs informations sur la saisie d'un numéro. Ce numéro unique correspond à un produit. Il existe une base Access où je vais chercher tout les devis où apparait ce numéro. Jusque là ca marche à peu pres. Mais je vais aussi chercher l'information concernant les stocks dans un fichier Excel.
J'ai organisé mon travail de cette façon (à mon avis c'est très mal pensé au départ, mais vous me direz): j'ai une fenêtre principale qui contient un panneau principal. Ce panneau va contenir mon panneau "PanneauAcces", et en dessous mon panneau "PanneauStock". Mais le problème est que je demande la saisie du numéro à l'utilisateur dans un JTextField contenu dans mon PanneauAccess se qui lance une recherche. Et je stocke cette recherche dans un attribut. Seulement voilà maintenant il faut que je récupère cette même recherche pour mon PanneauStock. Mais là je bloque complètement. Comment faire?
Voilà quelques unes de mes classes simplifiées:
Code:
1 2 3 4 5 6 7 8 9 10
| public class FenetrePrincipale extends JFrame {
public FenetrePrincipale() {
super("Devis rechange");
setSize(1000, 700);
setContentPane(new PanneauPrincipal());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
} |
Code:
1 2 3 4 5 6 7 8 9
| public class PanneauPrincipal extends JPanel {
public PanneauPrincipal() {
super(new GridLayout(0, 1));
add(new PanneauAccess());
add(new PanneauStock());
setVisible(true);
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| public class PanneauAccess extends JPanel {
private Recherche rec;
/**
* <p>Instancie les champs de saisi, listes déroulantes, boutons
* et icones pour le panneau présentant les devis rechange sous
* Access</p>
*/
public PanneauAccess() {
super(new GridLayout(3, 1));
/* champs de recherche */
JPanel panneauAccessHaut = new JPanel(new GridLayout(2, 2, 10, 10));
panneauAccessHaut.add(panneauPN());
panneauAccessHaut.add(panneauAnnee());
panneauAccessHaut.add(panneauAffaire());
panneauAccessHaut.add(panneauErreur());
add(panneauAccessHaut);
/* champs de résultat */
JPanel panneauAccessMilieu = new JPanel(new GridLayout(2, 2));
panneauAccessMilieu.setBackground(Color.WHITE);
panneauAccessMilieu.add(panneauFiche());
panneauAccessMilieu.add(panneauDateDif());
panneauAccessMilieu.add(panneauQte());
panneauAccessMilieu.add(panneauCPP());
add(panneauAccessMilieu);
...
setVisible(true);
}
/**
* <p>Champs de saisi du part number afin d'effectuer une recherche
* sur celui-ci</p>
* @return panneauPN, un panneau contenant un texte et un champs de saisi
* du P/N
*/
private JPanel panneauPN() {
JPanel panneauPN = new JPanel(new FlowLayout());
panneauPN.add(new JLabel("P/N :"));
champsPN = new JTextField("");
/* récupération de la valeur du champs sur "entrer" */
champsPN.addActionListener(new ActionEntrerListener());
champsPN.setColumns(10);
panneauPN.add(champsPN);
return panneauPN;
}
...
public class ActionEntrerListener implements ActionListener {
/* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed
* java.awt.event.ActionEvent)
*/
@Override
public void actionPerformed(ActionEvent evt){
if(evt.getSource()==champsPN) {
JTextField PN = null;
PN = (JTextField)evt.getSource();
System.out.println((JTextField)evt.getSource());
rec = new Recherche(PN.getText());
try {
rec.recherchePN();
premierDevis();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(evt.getSource()==champsAffaire) {
JTextField Affaire = null;
Affaire = (JTextField)evt.getSource();
System.out.println((JTextField)evt.getSource());
rec = new Recherche(Affaire.getText());
try {
rec.rechercheAffaire();
premierDevis();
} catch (SQLException e) {
e.printStackTrace();
}
}
Object monBouton = evt.getSource();
if(monBouton.equals(precedent)) {
}
if(monBouton.equals(suivant)) {
suivant();
}
}
}
} |
Code:
1 2 3
| public class PanneauStock extends JPanel {
// ici j'aimerai récupérer la recherche de PanneauAccess
} |
Merci de votre aide future :ccool: