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 :

probleme dans swing


Sujet :

AWT/Swing Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 18
    Par défaut probleme dans swing
    J'ai un petit probleme,que je pense est lié a swing.
    Le but,est de creer une fentre principal,avec a gauche,des ongletsqui sont en fait des jpanel,et ceux ci contiennent des Jcheckbox.

    A droite(de la fenetre),je cree un jpanel,qui contient un bouton reset,
    qui est sensé decoché tous les checkbox.

    Mon idée etait de passer en parametre les references des differents onglets a l'objet panelstart ,et a partir de cet objet je decoche
    tous les checkbox
    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
     
    import javax.swing.*;
     
    import java.awt.event.*;
    import java.awt.*;
     
     
     
     
    public class frame {
     
     
     
    	public static void main(String[] args) {
    		JFrame frame=new JFrame("Classification test");
     
     
    		//Creation de l'objet onglet qui gerent les onglets
    		JTabbedPane onglets = new JTabbedPane(SwingConstants.TOP);
     
    	//Onglet 1	
    	    panelservices onglet1 = new panelservices();
     
    	    JLabel titreOnglet1 = new JLabel("Onglet 1");
    	    onglet1.setPreferredSize(new Dimension(300, 80));
     
     
    	    onglets.addTab("services", onglet1);
     
     
     
     
     
     
    	    onglet1.setPreferredSize(new Dimension(300, 80));
     
     
      onglets.addTab("Systeme exploitation", onglet4);
     
     
     
     
    panelstart panel2=new panelstart(onglet1,onglet2,onglet3,onglet4);	
     
    	   	panel2.setLayout(new BoxLayout(panel2,BoxLayout.Y_AXIS));
     
     
    		JPanel panel1=new JPanel();
     
    		panel1.add(onglets);
     
    		frame.getContentPane().add(BorderLayout.WEST,panel1);
    		frame.getContentPane().add(BorderLayout.EAST,panel2);
     
     
     
    		   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               frame.setSize(500,200);
               frame.setVisible(true);
     
     
     
     
    	}
     
     
     
     
     
     
     
     
     
    }

    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
     
    import javax.swing.*;
     
    import java.awt.event.*;
    import java.awt.*;
     
     
    public class panelstart extends JPanel{
    	JButton bouton1;
    	JButton bouton2;
     
    	//References vers d'autres objets.
    	panelservices onglet1;
    	 public panelstart(panelservices ongleser){
     
     
    	     bouton1 = new JButton("Start");
    		    add(bouton1);
    		    bouton2 = new JButton("Reset");
    		    add(bouton2);
    		    bouton2.addActionListener(new ifield1());
    		    onglet1=ongleser;
     
     
     
     
    		  }
     
     
     
    	 class ifield1 implements ActionListener{
         	  public void actionPerformed(ActionEvent event)
           {
     
     
     
           	onglet1.bouton2.setSelected(false);
           	onglet1.bouton3.setSelected(false);
     
     
     
     
     
     
           }
    	 }
     
     
     
     
    }

    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
     
    import javax.swing.*;
     
    import java.awt.event.*;
    import java.awt.*;
     
     
    public class panelservices extends JPanel{
    	JPanel pannel;
    	JCheckBox bouton1;
    	JCheckBox bouton2;
    	JCheckBox bouton3;
     
     
     
     
    	 public panelservices(){
     
     
    		    pannel = new JPanel();
    		    this.add(pannel);
    		    JCheckBox bouton1 = new JCheckBox("telnet");
    		    pannel.add(bouton1);
    		    JCheckBox bouton2 = new JCheckBox("ftp");
    		    pannel.add(bouton2);
    		    JCheckBox bouton3 = new JCheckBox("sql server");
    		    pannel.add(bouton3);
     
     
    		  }
     
     
     
     
     
     
    }

    Mais,j'obtient cela comme erreur:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at panelstart$ifield1.actionPerformed(panelstart.java:52)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(questionPrecise) {
        chercherUneReponse();
    } else {
        throw new QuestionException();
    }
    QuestionException: c'est quoi ta question ?
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Citation Envoyé par kalmless21
    A droite(de la fenetre),je cree un jpanel,qui contient un bouton reset,
    qui est sensé decoché tous les checkbox.
    Laisse-moi deviner...
    Les checkBox ne sont pas décochés quand on appuit sur reset ?
    Ou le JPanel s'affiche à gauche (de la fenêtre) ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 18
    Par défaut
    J'ai edité mon message avec la question en plus,je pensais pas que vous alliez repondre si rapidement.
    Merci

  5. #5
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Alors déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onglets.addTab("Systeme exploitation", onglet4);
    onglet4 ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    panelstart panel2=new panelstart(onglet1,onglet2,onglet3,onglet4);
    ??? Où est le constructeur panelstart(panelservices,panelservices,panelservices,panelservices) ?

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Là c'est mieux , alors regarde bien l'exception qui est levée :
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at panelstart$ifield1.actionPerformed(panelstart.java:52)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    Tu as déjà la ligne qui a provoquée l'erreur (ligne 52 du fichier panelstart.java).

    Il s'agit de la méthode actionPerformed de ton ActionListener (ifield1), voyons sont code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void actionPerformed(ActionEvent event) {
        onglet1.bouton2.setSelected(false);
        onglet1.bouton3.setSelected(false);
    }
    L'exception levée est une NullPointerException ce qui signifie que tu as un objet à null alors qu'il ne devrait pas l'être. Il s'agit donc soit de onlet1 soit de bouton2 (ou bouton3 selon quelle ligne est la 53). Cherche à partir de là c'est sûrement un problème d'initialisation.

    PS : Par convention les noms des classes commencent par une majuscule.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 18
    Par défaut
    onglet4 ?
    Où est le constructeur panelstart(panelservices,panelservices,panelservices,panelservices) ?
    J'ai supprimé des bouts de code,en particulier le code non utile pour comprendre le fctionnement globale.

    Ce que j'ai fait:
    j'ai remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onglet1.bouton2.setSelected(false);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(!onglet1.equals("hi")){
         			 System.out.println("kkk");
         		 }
    J'obtiens biens kkk
    Cela prouve que l'objet bouton2 n'est pas instancié?
    Mais comment l'objet n'est pas instancié,alors que lorsque
    je cree onglet1(instance de la classe panelservice),j'instancie le bouton
    a l'aide du constructeur?

  8. #8
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    ???
    .equals(Object) renvoie un boolean si l'objet est strictement égal à celui référencé par l'instance.
    Je ne vois pas le sens de onglet1.equals("hi").

    Les bouton1, bouton2 et bouton3 sont null.
    N'aurais-tu pas oublié un PanelServices ps = new PanelServices(), par hasard ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 18
    Par défaut
    C'est bon,j'ai trouvé,merci le Yoms.
    C'est dans la classe panelservice,je
    declare comme attribut les references bouton1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    JCheckBox bouton1;
    	JCheckBox bouton2;
    	JCheckBox bouton3
    et dans la methode du constructeur,je
    les redeclares:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    JCheckBox bouton1 = new JCheckBox("telnet");
    		    pannel.add(bouton1);
    		    JCheckBox bouton2 = new JCheckBox("ftp");
    		    pannel.add(bouton2);
    		    JCheckBox bouton3 = new JCheckBox("sql server");
    		    pannel.add(bouton3);

  10. #10
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Comme j'ai remarqué certaines failles dans ton code, je l'ai quelque peu modifié, de façon plus "conventionnel". Observe bien les changements, j'ai respecté ton algorithme en général, bien qu'il puisse être optimisé...
    Fichiers attachés Fichiers attachés

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 18
    Par défaut
    Merci BlacWood,
    mais je peut te demander de me preciser mes erreurs,a tous les niveaux,
    ca serait vraiment bien pour progressé.Merci encore

  12. #12
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Hou ! J'aurai trés certainement beaucoup de choses à dire !
    Je viens de me rendre compte que j'aurai du commenter mon/ton code...
    Rien qu'en étudiant attentivement les différences entre le tien et le miens, tu remarqueras beaucoup de choses (qui te sembleront de plus logiques, normalement. C-à-d compréhensibles). Si j'en ai le temps, je te les renverrai commenté, mais je ne te promet rien.
    Je précise tout de même que mon code ne se prétend pas parfait, bien entendu. Il y dedans de ma façon de coder comme tout programmeur.

  13. #13
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Et les revoici commentée
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme dans request.QueryString("chaine")
    Par soufienne dans le forum ASP
    Réponses: 8
    Dernier message: 24/08/2004, 14h49
  2. Probleme dans une procedure stockée
    Par malbaladejo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/07/2004, 14h08
  3. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51
  4. Probleme dans une clause like !
    Par adil dans le forum Langage SQL
    Réponses: 6
    Dernier message: 15/07/2003, 16h47
  5. Probleme dans ma requete
    Par Kuroro dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/07/2003, 11h14

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