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 :

Programmation d'un bouton


Sujet :

AWT/Swing Java

  1. #21
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Points : 75
    Points
    75
    Par défaut
    voilà le code de la méthode jButton1ActionPerformed :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
            ad.setVisible(true);        
            back.dispose();
        }

    et le ligne 232 est la ligne ad.setVisible(true)

  2. #22
    Membre du Club Avatar de matzeus
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    alors si j'ai bien compris tu definis une classe qui s'appelle :
    Background extends JFrame
    dans cette classe tu definis une fonction d'initialisation qui s'appelle :
    initComponents()
    dans laquelle tu as:

    jButton1.setText("Valider");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jButton1ActionPerformed(evt);
    }
    });

    a l'appui du bouton jButton1, que veux tu appeler comme classe ou comme Object??
    est ce que ce dernier est un thread ou non?

    par exemple si tu veux appeller un object TATA extends JFrame

    tu definis un object de type TATA dans la declaration de toutes tes variables: public TATA tata = new TATA();

    puis tu ecris
    jButton1.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent evt)
    {
    TATA.setVisible(true);
    }
    });
    si tu veux que ta premiere fenetre disparaisse il faut faire un peu differemment....


    j'espere que j'ai bien compris ton probleme et que ca peut t'aider...

  3. #23
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Mince, c'est ad qui n'était pas initialisée. Il faut appeler son constructeur, sinon elle n'existe pas. Et si tu lui appelles une méthode, comme setVisible(true), ça lance une NullPointerException.

    Il faut donc que tu appelles quelque part (dans le constructeur ou bien dans jButton1ActionPerformed) : ad = new Machin();

    edit : en fait je répète ce qu'a dit matzeus.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  4. #24
    Membre habitué Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Points : 177
    Points
    177
    Par défaut
    C'est normal, car si ta seconde frame est definie dans une classe, il faut d'abord appeler un nouvel objet (je m'explique) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
            LaClasseDeAd ad = new LaClasseDeAd();
            ad.setVisible(true);        
            back.dispose();
        }
    Il faut que tu appeles le constructeur de la seconde frame, car sinon il ne sais tout simplement pas ce qu'est 'ad'.

    (Je sais pas si j'ai été très clair )
    Science sans conscience n'est que ruine de l'âme

  5. #25
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Points : 75
    Points
    75
    Par défaut
    tu as bien compris le problème
    mais moi par contre je ne sais plus quoi faire pour que ca marche

  6. #26
    Membre habitué Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Points : 177
    Points
    177
    Par défaut
    On va faire plus simple
    Quelles est le nom de la classe de ta second frame? (celle que tu appeles ad)

    Tu as juste a rajouter la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LeNomDeLaClasse ad = new LeNomDeLaClasse();
    Avant la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ad.setVisible(true);
    En principe cela devrait fonctionner.


    Pour t'expliquer un peu plus le probleme :
    En java tout est objet, c'est a dire que quand tu dis a ton programme "ad.setVisible(true)", celui-ci va rechercher l'objet appelé "ad" afin de lui appliquer la methode setVisible().
    Dans ton cas, l'objet n'a pas été déclaré, c'est un peu comme si tu disais : je vais aller laver ma voiture, sans avoir acheté de voiture au préalable.

    (Mes exemples me semblent couillon mais je vois pas comment expliquer autrement )
    Science sans conscience n'est que ruine de l'âme

  7. #27
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Points : 75
    Points
    75
    Par défaut
    ca y est ca marche !!!!

    Un grand MERCI à tous ceux qui m'ont aidé

  8. #28
    Membre du Club Avatar de matzeus
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    ok on va simplifier les choses:

    class Background extends ....
    {
    .....
    public Background ()
    {
    ...
    initComponents()
    .....
    }

    public void initComponents()
    {
    ....
    public TATA tata = new TATA();
    ...
    jButton1.setText("Valider");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jButton1ActionPerformed(evt);
    }
    });
    ...
    }

    public void jButton1ActionPerformed(java.awt.event.ActionEvent)
    {
    tata.setVisible(true);
    this.dispose();
    }

    }


    ca devrait marcher...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. demarrer un programme avec un bouton sur un gui
    Par sammyac dans le forum AWT/Swing
    Réponses: 0
    Dernier message: 15/12/2008, 14h36
  2. Programmation d'un bouton option
    Par jeje59s dans le forum VBA Word
    Réponses: 2
    Dernier message: 07/11/2008, 01h17
  3. Réponses: 2
    Dernier message: 13/03/2008, 16h33
  4. Réponses: 2
    Dernier message: 23/04/2007, 17h19
  5. Comment executer un programme avec un bouton
    Par STEPH69000 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 09/08/2006, 19h48

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