Gestion de jpanel à partir d'un bouton
Résolu
sansordi
Messages postés
80
Date d'inscription
Statut
Membre
Dernière intervention
-
Felice_ Messages postés 265 Date d'inscription Statut Membre Dernière intervention -
Felice_ Messages postés 265 Date d'inscription Statut Membre Dernière intervention -
Bonjour !
Voila je suis en train de développer mon logiciel mais étant amateur, il me manque quelques notions que je n'arrive pas à trouver.
En gros, je souhaiterais que lorsque j'appuie sur mon bouton valider de ma fenêtre de dialogue, mon panel contPrincipal retire le panel de ma class 2 et ajoute celui de la class 3.
Sauf que je n'ai aucune idée de comment coder mon ActionPerformed pour que cela fonctionne.
J'avais essayé ca mais ca ne fonctionne pas (j'avais passé mon contPrincipal en public) :
J'espère ne pas demander l'impossible, sinon je vais devoir tout revoir ^^.
Merci de votre aide !
Voila je suis en train de développer mon logiciel mais étant amateur, il me manque quelques notions que je n'arrive pas à trouver.
// 1ere class : Fenêtre du logiciel avec un conteneur général qui servira de support autres conteneurs
public class 1 extends javax.swing.JFrame {
private javax.swing.JPanel contPrincipal;
public 1 () {
initComponents();
add(contPrincipal);
2 Panel2 = new 2();
contPrincipal.add(Panel2);
}
}
// 2eme class : Jpanel contenant un tableau avec BDD... et un bouton pour ajout de nouveau client
public class 2 extends javax.swing.JPanel{
private javax.swing.JBtutton nouveauClient;
public 2 () {
initComponents();
add(nouveauClient);
}
private void nouveauClient_jBtnActionPerformed(java.awt.event.ActionEvent evt) {
// je ne suis déjà pas très sur de cette manip mais cela fonctionne
1 logiciel = new 1();
4 nClient = 4(logiciel, true);
nClient.setVisible(true);
}
}
// 3eme class : jPanel contenant des informations sur le client
public class 3 extends javax.swing.JPanel{
public 3 () {
initComponents();
}
}
// 4eme class : dont le but est de rentrer les nouvelles données clients
public class 4 extends javax.swing.JDialog {
private javax.swing.JBtutton valider;
public 4 (java.awt.Frame parent, boolean modal){
super(parent, modal);
initComponents();
}
}
En gros, je souhaiterais que lorsque j'appuie sur mon bouton valider de ma fenêtre de dialogue, mon panel contPrincipal retire le panel de ma class 2 et ajoute celui de la class 3.
Sauf que je n'ai aucune idée de comment coder mon ActionPerformed pour que cela fonctionne.
J'avais essayé ca mais ca ne fonctionne pas (j'avais passé mon contPrincipal en public) :
public class 4 extends javax.swing.JDialog {
private javax.swing.JBtutton valider;
public 4 (java.awt.Frame parent, boolean modal){
super(parent, modal);
initComponents();
}
private void valider_jBtnActionPerformed(java.awt.event.ActionEvent evt) {
1 logiciel = new 1(); // forcement ici il prend en compte une nouvelle fenêtre autre que celle déjà existante
3 panel3 = new 3();
1.contPrincipal_jPnl.removeAll();
1.contPrincipal_jPnl.add(panel3);
1.contPrincipal_jPnl.validate();
1.contPrincipal_jPnl.repaint();
dispose();
}
J'espère ne pas demander l'impossible, sinon je vais devoir tout revoir ^^.
Merci de votre aide !
A voir également:
- Gestion de jpanel à partir d'un bouton
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Bouton shift pc ✓ - Forum Jeux vidéo
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Bouton on off ✓ - Forum Loisirs / Divertissements
1 réponse
Bonjour,
Déjà ce serait bien de respecter les conventions de nommage Java.
Je ne sais pas comment tu fais pour tester ton code, mais c'est normalement impossible d'avoir un nom qui commence par un chiffre, donc
Ensuite il faut te servir des imports, avoir toujours les classes pleinement nommées rend le code difficile à lire car ce sont des informations superflues qui empêchent de saisir l'essentiel du code.
Ça plus d'autres erreurs du genre JBtutton au lieu de JButton, 4 nClient = 4(logiciel, true); sans le new, sans parler de la méthode initComponents() que tu utilises partout mais n'est défini nul part.
Bref, tu n'as pas testé ton code, c'est impossible, et ce serait quand même un minimum avant de nous demander pourquoi ça ne fonctionne pas...
Déjà ce serait bien de respecter les conventions de nommage Java.
Je ne sais pas comment tu fais pour tester ton code, mais c'est normalement impossible d'avoir un nom qui commence par un chiffre, donc
class 1ou
1 logiciel = new 1();ce n'est pas du Java...
Ensuite il faut te servir des imports, avoir toujours les classes pleinement nommées rend le code difficile à lire car ce sont des informations superflues qui empêchent de saisir l'essentiel du code.
Ça plus d'autres erreurs du genre JBtutton au lieu de JButton, 4 nClient = 4(logiciel, true); sans le new, sans parler de la méthode initComponents() que tu utilises partout mais n'est défini nul part.
Bref, tu n'as pas testé ton code, c'est impossible, et ce serait quand même un minimum avant de nous demander pourquoi ça ne fonctionne pas...
Bref, pour faire ce genre de réponse ca vole pas haut chez toi...
Je ne demande pas une solution toute prête mais des indices à tester pour ceux qui veulent bien faire l'effort de comprendre le principe de ma question...
Passes ton chemin si ce n'est pas a ta hauteur!
Tu as en effet énormément d'erreur sansordi. Les remarques de KX même si elles te plaisent pas sont bonnes…
Un début de correction est :
En ce qui concerne ta proposition, dans la classe C4, contPrincipal ne peut pas être appeler ainsi, cela renvoie une erreur.
Après ce qu'il faut voir c'est que le temps qu'on va consacrer à faire marcher ton code on ne va pas pouvoir le consacrer à répondre à ta question.
Alors que si ton code fonctionnait on pourrait tester et te répondre tout de suite
Ta méthode « initComponents » semble lié a ton ide « Netbeans », jusque là ok.
En revanche je me demande sur le moment d'où elle sort ta propriété « contPrincipal_jPnl » ?
De même au niveau de
C'est bien une nouvelle instance de la classe C1 que tu as besoin ?