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

Langage Java Discussion :

Problème d'accès aux méthodes d'une classe


Sujet :

Langage Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut Problème d'accès aux méthodes d'une classe
    Bonjour,

    J'ai un problème que je vais essayer d'expliquer clairement mais je sais pas si je vais y arriver

    Voilà, j'ai une classe A qui hérite de JPanel, une classe B qui hérite de JDialog dans laquelle j'ai un ButtonGroup avec 5 JRadioButton ainsi que deux méthodes : getInstance() (static) et getActiviteSelected(), et une instanciation de la classe A.

    Ma méthode getActiviteSelected(), renvoie un chiffre selon le JRadioButton séléctionné et la méthode getInstance renvoie l'instanciation de la classe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static B getInstance() {
            if ( appli == null )
                appli = new B(main,bdd);
            return appli;
        }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    String getActiviteSelected() {
    	  String activite = new String("10");
     
    	  if(jRadio1.isSelected())
    		  activite =1
     
    	  if(jRadio2.isSelected())
    		  activite = 2
     
    	  if(jRadio3.isSelected())
    		  activite = 3;
     
    	  return activite;
      }
    A partir de la, je fait appelle à la méthode getActiviteSelected() dans ma classe A (qui est instanciée dans ma classe B :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    B.getInstance().getActiviteSelected()
    seulement le problème, c'est que cela me retourne toujours 10 et ne passe jamais dans les conditions même si un des boutons est séléctionné.

    J'ai testé plusieurs moyens mais je n'ai pas réussi à récupérer le JRadioButton de selectionner.

    Vous pouvez m'aider ?

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Ca me semble un peu bizarre quand même, ca pourrait venir du fait que les boutons ne sont pas dans la même instance que celle que tu récupères...

    Tu n'as aucune exception qui est lancée ?

    Montre voir un peu plus de code.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    Dans la classe B, je fait appelle a la fonction dans un mouselistener :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void mouseClicked(MouseEvent event) {
    if (event.getButton() == MouseEvent.BUTTON1){ // Boutton gauche == ajout
    						add(minute,DialogScan.getInstance().getActiviteSelected());
     
    }
    else {
    ...
    }
    }
    Il semblerait en effet que je ne recupère pas la bonne instance mais il n'y en a qu'une seul dans l'appli.

    Pour le code de la fonction add, c'est de l'ajout dans une hashtable (de la classe A) :
    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
    public void add(int minute, String activite) {
    		int i;
    		String[] act=new String[2];
    		act[0]=String.valueOf(minute);
    		act[1]=activite;
    		for(i=1;i<=activiteHash.size();i++) {
    			String tab[] = (String[])activiteHash.get(String.valueOf(i));
    			if (Integer.parseInt(tab[0])>minute) {
    				break;
    			}
    		}
    		for (int j=activiteHash.size()+1;j>i;j--) {
    			activiteHash.put(String.valueOf(j),activiteHash.get(String.valueOf(j-1)));
    		}
    		activiteHash.put(String.valueOf(i),act);
     
    	}
    Si vous voulez autre chose du code dites le moi

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Tu peux nous montrer un peu plus de ta classe DialogScan ?
    " Un con qui marche va plus loin qu'un intellectuel qui pense..."

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    Pour la simplifier un peu (sinon y'en a beaucoup) j'ai ca

    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
    public class DialogScan extends JDialog {
     
    	private  static DialogScan appli = null;
     
         public static DialogScan getInstance() {
            if ( appli == null )
                appli = new DialogScan(MainFrameTransport.getInstance(),MainFrameTransport.bdd);
            return appli;
        }
     
    ButtonGroup Activ=new ButtonGroup();
    JRadioButton jRadio1 = new JRadioButton();
    JRadioButton jRadio2 = new JRadioButton();
    JRadioButton jRadio3 = new JRadioButton();
    [...]
     
    public DialogScan(JFrame f,BddTransport bdd) throws HeadlessException {
    		super(f);
    		try {
    			jbInit(bdd);
    			// Initialize JTwain.    
    			if (!JTwain.init ()) {
    				return;
    			}
     
    		}
    		catch (JTwainException ex)
    		{
    			System.out.print("exception dans DialogScan : "+ex);
    		}
    		catch(Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    private void jbInit(BddTransport bdd) throws Exception {
                Activ.add(jRadio1);
    	    Activ.add(jRadio2);
    	    Activ.add(jRadio3);
    [...]
                jPanelAct.add(jRadio1, null);
                jPanelAct.add(jRadio2, null);
                jPanelAct.add(jRadio3, null);
    [...]
    }
     
    String getActiviteSelected() {
    	  String activite = new String("10");
     
    	  if(jRadio1.isSelected())
    		  activite =1
     
    	  if(jRadio2.isSelected())
    		  activite = 2
     
    	  if(jRadio3.isSelected())
    		  activite = 3;
     
    	  return activite;
      }
    Voilà à ce qui à un rapport avec les boutons radios. J'ai essayé d'enlever le ButtonGroup... sans succès.

    J'ai essayé de mettre dans la fonction jbinit jRadio1.setSelected(true), le bouton est bien coché.

    J'ai bien l'impression qu'il ne retourne pas la bonne instance mais la je comprend pas trop pourquoi :/

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    Bouh honte à moi, je commence par la fin pour solutionner un problème avant de commencer par le commencement !!

    En fait, la première instanciation ne se faisait pas par la fonction getInstance() mais par le constructeur... forcément... donc voilà j'ai trouvé le problème ...

    Merci à tous en tout cas pour votre aide car mine de rien je me suis rendu compte que je faisas les choses à l'envers en vous faisant un résumé

    (reprendre le code de quelqu'un d'autre c'est dur dur ...)

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

Discussions similaires

  1. [JSTL] Accès aux méthodes d'une classe
    Par libuma dans le forum Taglibs
    Réponses: 7
    Dernier message: 07/09/2010, 09h14
  2. Acces aux méthodes d'une Classe
    Par Sunchaser dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/08/2010, 21h51
  3. Réponses: 5
    Dernier message: 01/02/2007, 13h14
  4. Réponses: 38
    Dernier message: 16/02/2005, 02h03
  5. [TOMCAT] JSP problème d'accès aux méthodes d'une classes
    Par gunnm dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 22/05/2004, 14h02

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