IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Bouton -> Vers nouveau JPANEL !


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Par défaut Bouton -> Vers nouveau JPANEL !
    Bonsoir, voila je débute sur JAVA et je coince sur un petit problème :

    Sur mon premier JPANEL ils y a plusieurs JBUTTON, le problème arrive lorsque je clic sur un JBUTTON "Ajouter" qui doit l'appelé un autre JPANEL "Ajoute Abonné".

    Lors du clic sur le JBUTTON, le bouton reste enfoncé mais rien ne se passe !


    Ceci est mon MAIN

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package lib;
     
    import lib.graphique.CalqueAccueil;
    import lib.graphique.CalqueAjouterAbonne;
    import lib.graphique.CalqueAjouterEmprunt;
     
     
     
     
    /**
     *
     * @author z1t0un3
     */
    public class Main {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            Application application = new Application();
            application.setCalqueActif(new CalqueAjouterAbonne(application));
     
        }
     
    }

    Ceci est le code APPLICATION (création de la fenêtre)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    package lib;
     
    import javax.swing.*;
     
    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,id=DCE.ACB36EBB-2C38-5014-8D43-B6B893176849]
    // </editor-fold>
    public class Application extends JFrame {
     
        public String titre;
        JPanel Actif;
     
        public Application() {
     
            super();
            build();//On initialise notre fenêtre
     
        }
     
        private void build() {
            int largeur = 400;
            int hauteur = 400;
            setTitle(titre); //On donne un titre Ã* l'application
            setSize(largeur, hauteur); //On donne une taille Ã* notre fenêtre
            setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
            setResizable(false); //On interdit la redimensionnement de la fenêtre
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit Ã* l'application de se fermer lors du clic sur la croix
            //setContentPane(Actif);
            setVisible(true);
        }
     
        public void setCalqueActif(JPanel calqueActif) {
            Actif=calqueActif;
            setContentPane(Actif);
     
        }
     
     
     
     
     
     
    }
    Enfin ceci est le code du JPANEL "Ajouté abonné"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
      Application appli;
        // private JTextField email;
        //  private JTextField ici;
     
        // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
        // #[regen=yes,id=DCE.8418F39C-F94F-9A80-91F1-CA105FB0258E]
        // </editor-fold> 
        public CalqueAjouterAbonne(Application application) {
            setLayout(null);
     
            //titre
            titre = new JLabel("Veuillez saisir les informations du nouvel abonné!");
            titre.setName("titre");
            titre.setBounds(10, 10, 400, 30);
            titre.setVisible(true);
            this.add(titre);
     
            //Nom
            nomText = new JLabel("Nom : ");
            nomText.setName("Nom");
            nomText.setBounds(10, 50, 100, 30);
            nomText.setVisible(true);
            this.add(nomText);
     
            nom = new JTextField("");
            nom.setBounds(150, 50, 100, 30);
            nom.setVisible(true);
            this.add(nom);
     
            //Prenom
            prenomText = new JLabel("Prénom : ");
            prenomText.setName("Prenom");
            prenomText.setBounds(10, 90, 100, 30);
            prenomText.setVisible(true);
            this.add(prenomText);
     
            prenom = new JTextField("");
            prenom.setBounds(150, 90, 100, 30);
            prenom.setVisible(true);
            this.add(prenom);
     
            //Date de naissance
     
            DateText = new JLabel("Date de naissance : ");
            DateText.setName("Date de naissance");
            DateText.setBounds(10, 150, 150, 30);
            DateText.setVisible(true);
            this.add(DateText);
     
            JComboBox ListeJour = new JComboBox();
            ListeJour.setBounds(150, 150, 40, 30);
            ListeJour.setVisible(true);
            this.add(ListeJour);
     
            for (int i = 1; i <= 12; i++) {
                ListeJour.addItem(i);
     
            }
     
            sep = new JLabel("/");
            sep.setBounds(195, 150, 30, 30);
            sep.setVisible(true);
            this.add(sep);
     
            Object[] Mois = new Object[]{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"};
            JComboBox ListeMois = new JComboBox(Mois);
            ListeMois.setBounds(210, 150, 40, 30);
            ListeMois.setVisible(true);
            this.add(ListeMois);
     
            sep = new JLabel("/");
            sep.setBounds(260, 150, 30, 30);
            sep.setVisible(true);
            this.add(sep);
     
     
     
            JComboBox ListeAnne = new JComboBox();
            ListeAnne.setBounds(270, 150, 70, 30);
            ListeAnne.setVisible(true);
            this.add(ListeAnne);
     
     
            for (int i = 1900; i <= 2010; i++) {
                ListeAnne.addItem(i);
     
            }
     
            BoutonAjouter = new JButton(new ActionAjouter());
            BoutonAjouter.setName("Ajouter");
            BoutonAjouter.setBounds(150,200,90,30);
            BoutonAjouter.setVisible(true);
            this.add(BoutonAjouter);
     
            BoutonAnnuler = new JButton();
            BoutonAnnuler.setName("Annuler");
            BoutonAnnuler.setBounds(150,200,90,30);
            BoutonAnnuler.setVisible(true);
            this.add(BoutonAnnuler);
     
     
     
     
            //annee = new JTextField("");
            // annee.setBounds(250,150,30,30);
            //annee.setVisible(true);
            //this.add(annee);
     
     
     
        }
    }

    Pour être complet voici le code de mon action "ajouté"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    package action;
     
    import java.awt.event.ActionEvent;
    import javax.swing.*;
    import lib.Application;
    import lib.graphique.CalqueAjouterAbonne;
    import lib.graphique.CalqueAjouterLivre;
     
     
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.C37345C0-6BDF-0DCF-EF1A-CD30D68AEDC6]
    // </editor-fold> 
    public class ActionAjouter extends AbstractAction {
    private Application application ;
    private CalqueAjouterAbonne AjouterAbonne  ;
    private CalqueAjouterLivre  AjouterLivre ;
     
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
        // #[regen=yes,id=DCE.4C04C8C9-E248-9B54-BB11-A7DFA1FC9D1F]
        // </editor-fold> 
        public ActionAjouter () {
         super("Ajouter");
        }
     
        public ActionAjouter(Application appli) {
            this();
            application = appli;
            AjouterAbonne = new CalqueAjouterAbonne(appli);
        }
     
     
     
        public void actionPerformed(ActionEvent e) {
     
            application.add(AjouterLivre);
            //System.out.print("lol");
     
     
        }
     
    }

  2. #2
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut
    Salut,

    Ta variable AjouterLivre de ta classe CalqueAjouterLivre n'est pas initialisée, elle est nulle. (Enfin je crois, si je ne me trompe pas...)
    Il me semble donc normal qu'il y ait un problème.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 10
    Par défaut
    laurentze , bonjour ,

    je me permet de répondre car je travail avec spruris , comme tu bien vu la variable CalqueAjouterLivre n'est pas initialisée,car mous utilisation AjouterAbonne = new CalqueAjouterAbonne(appli); CalqueAjouterLivre et prévu pour la suite mias cela ne fonction déja pas avec AjouterAbonne

  4. #4
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut
    Salut,

    Je ne comprends pas vraiment...Votre problème est que le fait d'appuyer sur le bouton ne fasse rien, non?

    Quand vous appuyez sur le bouton, c'est la méthode actionPerformed qui est appelée...

    Or cette méthode ne fait rien... Ou plutôt, elle appelle la méthode add de ton attribut application avec ton attribut AjouterLivre en paramètre.

    Perso, je suis pas expert (trés loin de la), mais je m'étonne que vous n'ayez pas d'erreur vu que l'attribut application n'est pas initialisé non plus.(Vous utilisez le constructeur sans argument au niveau de votre bouton BoutonAjouter).

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 10
    Par défaut
    je pense que on doit se trompée quelle par mais ou je sais pas vraiment ces le soucis, car si je fait new application sa me fait une nouvelle fenestre ces qui tout a fait normal mais je vois pas comment faire pour réglé se soucis .. dur dur le java au début

  6. #6
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut
    Qu'est ce que tu veux faire exactement... Remplacer ton JPanel par un autre JPanel quand tu appuie sur ton bouton?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 10
    Par défaut
    oui

  8. #8
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut
    Essayer de:

    _ D'abord remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BoutonAjouter = new JButton(new ActionAjouter());
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BoutonAjouter = new JButton(new ActionAjouter(this));
    _Puis au niveau de action performed

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     appli.setContentPane(AjouterAbonne);
    Je sais pas si ça marche, pouvez vous me dire ce que ça donne...

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 10
    Par défaut
    je teste cela des que je rentre chez moi et je vous dit se que sa donne

  10. #10
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut
    Cool, merci.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 10
    Par défaut Mise a jour code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package lib.graphique;
     
     
     
     
     
    import action.ActionAjouter;
    import action.ActionMenuAccueil;
    import action.ActionModifier;
    import action.ActionSuprimer;
    import javax.swing.*;
    import lib.Application;
     
    /**
     *
     * @author z1t0un3
     */
     
     
    /**Reste a faire
     * Création Basse de donneés SQL /2h
     * Vérification UML (aso) /1h
     * Gestion de la JComboBox /1h
     * Action sur le JTextField /1h
     * Gestion utilisateur /2h
     * reprise de code "orgine" gestion des tableau /2h
     * codeé le graphique des action (suprimeé , ajouter , modifier )1h
     * déplaceé le code de la cération jrame dans aplication et creé les méhtode pour la modification de claque et du titre
     */
     
     
    public class CalqueAccueil extends JPanel  {
     
     
     
      private JTextField  rechercher ;
      private JLabel infoLivre;
      private JLabel infoEmprunt;
      private JLabel infoAbonne ;
      private JButton ajouter;
      private JButton supprimer;
      private JButton modifier;
      Application appli;
      CalqueAjouterAbonne calqueAjouterAbonne;
      public   CalqueAccueil (Application application) {
        appli=application;
       //on utilise pas de layout
        this.setLayout(null);
     
        //Selection du menu
        Object[] Menu = new Object[]{"","Livre", "Emprunt", "Abonné"};
        JComboBox menuAccueil = new JComboBox(Menu);
        menuAccueil.addItemListener( new ActionMenuAccueil(this));
        menuAccueil.setBounds(50,100,120,30);
        menuAccueil.setVisible(true);
        //
        this.add(menuAccueil);
     
        //Boutoon rechercher
        rechercher = new JTextField ();
    //  rechercher.addKeyListener(new ActionRechercher(rechercher));
        rechercher.setName("Rechercher");
        rechercher.setBounds(50,240,120,30);
        //
        rechercher.setVisible(false);
        this.add(rechercher);
     
       //info livre
        infoLivre = new JLabel("Entrer le titre du livre :");
        infoLivre.setName("info");
        infoLivre.setBounds(50,210,150,30);
        infoLivre.setVisible(false);
        this.add(infoLivre);
     
       //infoEmprunt Emprunt
       infoEmprunt = new JLabel("Entrer la date d'emprunt : ");
       infoEmprunt.setName("info");
       infoEmprunt.setBounds(50,210,200,30);
       infoEmprunt.setVisible(false);
       this.add(infoEmprunt);
     
        //infoAbonne
       infoAbonne = new JLabel("Entrer le mon de l'abonné : ");
       infoAbonne.setBounds(50,210,200,30);
       infoAbonne.setVisible(false);
       this.add(infoAbonne);
     
     
         //Boutoon ajouter
        ajouter = new JButton (new ActionAjouter(appli));
        ajouter.setName("Ajouter");
        ajouter.setBounds(240,100,120,30);
        //
        ajouter.setVisible(false);
        this.add(ajouter);
     
        //Boutoon modifier
        modifier = new JButton  (new ActionModifier());
        modifier.setName("Modifier");
        modifier.setBounds(240,150,120,30);
       //
        modifier.setVisible(false);
        this.add(modifier);
     
        //Boutoon rechercher
        supprimer = new JButton  (new ActionSuprimer());
        supprimer.setName("Suprimer");
        supprimer.setBounds(240,200,120,30);
        supprimer.setVisible(false);
        this.add(supprimer);
     
       //
      }
     
      public JTextField getRechercher () {
     
          return this.rechercher;
     
      }
     
     public JLabel getinfoLivre () {
     
          return this.infoLivre;
     
      }
     
      public JLabel getinfoEmprunt () {
     
          return this.infoEmprunt;
     
      }
     
     public JLabel getinfoAbonne () {
     
          return this.infoAbonne;
     
      }
     
     
      public JButton getButtonAjouter () {
     
          return this.ajouter;
     
      }
     
        public JButton getButtonSupprimer () {
     
          return this.supprimer;
     
      }
     
     
          public JButton getButtonModifier () {
     
          return this.modifier;
     
      }
     
     
    public void  setVisibleObjetGraphique(JComponent objetGraphique, boolean visible )
    {
     
     
       objetGraphique.setVisible(visible);
     
     
    }
     
     
     
     
    }
    je vous rajoute le jpanel CalqueAccueil ces lui qui possède le bouton ajouter

    sa sera plus clair désoler

    Lien du projet complet : http://dl.free.fr/elHznJfgS

    Merci de votre aide

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 10
    Par défaut
    juste pour savoir si Quelle pourrait mous aidée :'( Merci

Discussions similaires

  1. un bouton importer vers mon hebergeur
    Par MORPHEUS50 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/05/2007, 17h22
  2. Réponses: 13
    Dernier message: 18/04/2007, 09h49
  3. Fermer une JDialog modale à partir d'un bouton contenu dans un JPanel
    Par Alqualonde dans le forum Agents de placement/Fenêtres
    Réponses: 18
    Dernier message: 02/03/2007, 14h20
  4. [Office 2003] Ajouter une bouton pointant vers un programme externe
    Par KalHadj-Nikov dans le forum Microsoft Office
    Réponses: 5
    Dernier message: 04/10/2006, 16h10
  5. [DOM] Ajouter un bouton avec un nouveau style
    Par Mehdi Feki dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/12/2005, 08h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo