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 :

[débutant] pb de réccupération de valeurs


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 5
    Points
    5
    Par défaut [débutant] pb de réccupération de valeurs
    bonjour à tous,

    je post ici car j'ai un pb avec mon prog.

    Je vais essayer de m'expliquer clairement.

    dans mon aplli principale je crée une fenetre ' principalwindow'. qui contient un menu avec un sous menu 'nouveau jeu' (je code un jeu chiant pour mon école) et là je rentre les dimensions du plateau du nouveau jeu.

    Or pour l'instant je suis obligé de mettre tout le reste de mes instruction derrière l'actionPerformed du bouton ok de la fenetre NewGameWindow ...

    comment mettre toutes mes instructions dans un controleur annexe ? Car pour l'instant si je mets la suite des instructions dans l'appli principale avec un accesseur get mais il y a une erreur vu qu'il n'attend pas les valeurs données par l'utilisateur .... et met des 0 à la place....

    Car mettre tout le controleur de mon programme là dedans ca me dis pas trop ....

    Avez vous une idée pour qu'il attende cette valeur ? ou autre chose ...

    merci d'avance

    ph

  2. #2
    Membre confirmé Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Points : 570
    Points
    570
    Par défaut
    Utilise une fenetre modale dans ta classe principal pour saisir les valeur, ainsi l'execution du code dans ta classe principal s'arretera tant que la fenetre modale de saisie sera active, une fois qu'elle ne l'est plus tu recupere les valeurs saisis, et tu continu ton traitement.
    Les deux principales inventions sorties de Berkeley sont UNIX et le LSD. Difficile de croire à une quelconque coïncidence - Jeremy S. Anderson

    Avant de vouloir qu’un logiciel soit réutilisable, il faudrait d’abord qu’il ait été utilisable - Ralph Johnson

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    merci bcp, mais ca va etre la demande débile ...

    dans mon école on ne m'a pas apris à faire une fenetre modale ....

    comment est ce que l'on fait ?

    merci bcp

    ph

  4. #4
    Membre confirmé Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Points : 570
    Points
    570
    Par défaut
    Je te mets sur la piste cherche du cote de JDialog, tu trouveras plein d'exemple sur le NET et google en particulier. Attention neamoins les JDialog ne sont pas modale par defaut mais tu peux les rendre modales soit par le boolean present dans certains de ces constructeurs soit par setModal().
    et pour la question qui va te venir a l'esprit je met quoi dans le champ owner tu mets la fenetre appelante (this).
    Les deux principales inventions sorties de Berkeley sont UNIX et le LSD. Difficile de croire à une quelconque coïncidence - Jeremy S. Anderson

    Avant de vouloir qu’un logiciel soit réutilisable, il faudrait d’abord qu’il ait été utilisable - Ralph Johnson

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    merci bcp je vais chercher

    cordialement
    ph

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    je suis sur le truc :

    j'ai réussi à faire un JDialoge sur ma classe où je réccupère les données. mais j'essaie de transformer ma fenetre principale aussi en Jdialog plutot que JFrame mais là ca marche pas ...
    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
     
    import java.awt.event.*;
    import java.awt.event.ActionListener;
    import java.awt.*;
    import java.util.Vector;
     
    import javax.swing.*;
    [....]
    public PrincipalWindow(Frame f,boolean modal ){ //Constructeur 
    		super(f,"Nouvelle partie",modal);
    		try { DisplayNewWindow();  }
    	    catch (Exception e) { e.printStackTrace(); }
    	    pack();
    	    }
     
    		private void DisplayNewWindow()throws Exception 
    {.....]
     {
    et l'utiliser dans 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
     
    import javax.swing.JFrame;
     
    import java.awt.Container;
    import java.awt.Frame
    ;public class ControlUnit extends JFrame{
     
    	/**
             * @param args
             * 
             */
     
     
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
     
     
    		PrincipalWindow F1 = new PrincipalWindow(getFrame(),true);
     
    		WindowListener Fl = new WindowAdapter(){
    			public void windowClosing(WindowEvent e){ System.exit(0);	}
    		};
    		F1.pack();
    		F1.setVisible(true);
    		System.out.println(F1.getSizeLines()+"fin");
    		System.out.println(F1.getSizeColumns()+"fin");
     
    		System.out.println(F1.getSizeLines()+"fin");
     
    	}
    	public Frame getFrame() {
            Container container = this.getParent();
            while( container != null ) {
                    if( container instanceof Frame ) {
                            return( (Frame)container );
                    } 
                    container = container.getParent();
            } 
            return(null); /** Ou une erreur */
    	}
     
    }
    mais ca marche pas

    il me dit ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    	Cannot make a static reference to the non-static method getFrame() from the type ControlUnit
     
    	at ControlUnit.main(ControlUnit.java:23)
    mais mettre en static la frame ca résout pas le pb ....

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    si vous avez des idées je vous en remercie d'avance.


    ph

  8. #8
    Membre confirmé Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Points : 570
    Points
    570
    Par défaut
    L'erreur vient du fait que la methode getFrame() n'est pas static, d'ou le "impossible de faire reference static a quel que chose qui ne l'est pas". Pour résoudre le probleme il faudrait donc rendre cette méthode static, mais plus généralement au niveau de la conception qu'est ce qui te motive a rendre ta fenetre principale en JDialog ? Personnelement je la laisserai en JFrame.
    Les deux principales inventions sorties de Berkeley sont UNIX et le LSD. Difficile de croire à une quelconque coïncidence - Jeremy S. Anderson

    Avant de vouloir qu’un logiciel soit réutilisable, il faudrait d’abord qu’il ait été utilisable - Ralph Johnson

  9. #9
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Je ne comprend pas trop ce que tu veux faire mais je peux te dire d'où vient ton erreur :

    Ta méthode public Frame getFrame() est une méthode d'instance de ta classe ControlUnit

    Or la méthode main de cette même classe étant une méthode statique, tu ne peux pas appeler la méthode d'instance getFrame sans avoir une instance de ControlUnit.

    Faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ControlUnit pgm = new ControlUnit();
    PrincipalWindow F1 = new PrincipalWindow(pgm.getFrame(),true);
    résolvera cette erreur.

    De là à ce que ça fasse ce que tu veux, c'est une autre histoire !

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  10. #10
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Scorpyosis, tu as été plus rapide.
    S'il rend sa méthode getFrame() static, ça ne marchera pas puisque dedans il appel à nouveau des méthodes d'instances de sa ControlUnit.

    Mais niveau conception, ça me passe au dessus ...

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  11. #11
    Membre confirmé Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Points : 570
    Points
    570
    Par défaut
    oui exact j'avais pas regardé le code a l'interieur
    Les deux principales inventions sorties de Berkeley sont UNIX et le LSD. Difficile de croire à une quelconque coïncidence - Jeremy S. Anderson

    Avant de vouloir qu’un logiciel soit réutilisable, il faudrait d’abord qu’il ait été utilisable - Ralph Johnson

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    dslé de vous embeter encore j'ai remanié mon prog pour l'instant pour essayer d'y voir plus clair ....

    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
    import java.awt.event.*;
    import java.awt.event.ActionListener;
    import java.awt.*;
    import java.util.Vector;
     
    import javax.swing.*;
     
     
    public class PrincipalWindow extends JFrame implements ActionListener {
     
     
    	private JMenuBar _menubar ;
        private JMenu _menuPrincipal; 
    	private JMenu _menuHelp;
    	private JMenuItem _menuNewGame;
    	private JMenuItem _menuControl;
    	private JMenuItem _Quit;
    	private JMenuItem _helpGame;
    	private JMenuItem _helpProg;
    	private JMenuItem _helpWhoBuildGame;
    	private JFrame JF1;
     
    	private GridLayout _lm;
    	private JTextArea _textArea;
    	private JPanel _pane;
     
    	private int _nbOfLines;
    	private int _nbOfColumns;
    	private String _J1Name;
    	private String _J2Name;
     
     
    	public PrincipalWindow(){ //Constructeur 
     
     
    		_menubar = new JMenuBar();
     
    		_menuPrincipal = new JMenu("menu principal");
    		_menuHelp = new JMenu("Aide");
     
     
     
    		_menuNewGame = new JMenuItem("Nouveau Jeu");
    		_menuPrincipal.add(_menuNewGame);
    		_menuNewGame.addActionListener(this);
     
     
    		_menuControl = new JMenuItem("Boite de commande");
    		_menuPrincipal.add(_menuControl);
    		_menuControl.addActionListener(this);
     
    		_Quit = new JMenuItem("Quitter");
    		_menuPrincipal.add(_Quit);
    		_Quit.addActionListener(this); 
     
    		_helpGame = new JMenuItem("Regle du jeu");
    		_menuHelp.add(_helpGame);
    		_helpGame.addActionListener(this);
     
    		_helpProg = new JMenuItem("Comment marche le programme ?");
    		_menuHelp.add(_helpProg);
    		_helpProg.addActionListener(this);
     
    		_helpWhoBuildGame = new JMenuItem("qui à créer le jeu ?");
    		_menuHelp.add(_helpWhoBuildGame);
    		_helpWhoBuildGame.addActionListener(this);
     
    		_menubar.add(_menuPrincipal);
    		_menubar.add(_menuHelp);
    		this.setJMenuBar(_menubar);
    		_pane = new JPanel(); //Definition du panel et placement dans la fenetre
    		this.setContentPane(_pane);
    	}
     
     
    	public void actionPerformed(ActionEvent evt){
    		//Traitement différent suivant l'émetteur des évenements
    		if(evt.getSource()==_helpGame){
    			System.out.println("cas menuAide");
    			HelpWindow hw1 = new HelpWindow();
    			hw1.pack();
    			hw1.setVisible(true);
    			}
     
    		if(evt.getSource()==_Quit){
    			dispose();
    		}
     
    		if(evt.getSource()==_menuNewGame){
     
    			NewGameWindow ngw = new NewGameWindow(JF1,true);
    			ngw.pack();
    			ngw.setVisible(true);
    			_nbOfLines = ngw.getSizeLine();
    			System.out.println(_nbOfLines+"at1");
     
    			_nbOfColumns = ngw.getSizeColumn();	
    			System.out.println(_nbOfColumns+"at1");
    			_J1Name= ngw.getNameJ1();
    			_J2Name=ngw.getNameJ2();
    		}
     
    		if(evt.getSource()== _menuControl){
     
    		}
    	}
     
    	public int getSizeLines(){
    		return _nbOfLines;
    	}
    	public void setSizeLines(int a){
    		_nbOfLines = a;
    	}
    	public int getSizeColumns(){
    		return _nbOfColumns;
    	}		
    	public void setSizeColumns(int a){
    		_nbOfColumns = a;
    	}
     
    	public String getNameJ1(){
    		return _J1Name;
    	}
    	public String getNameJ2(){
    		return _J2Name;
    	}
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
     
    		PrincipalWindow F1 = new PrincipalWindow(); 
     
    		WindowListener Fl = new WindowAdapter(){
    			public void windowClosing(WindowEvent e){ System.exit(0);	}
    		};
    		F1.pack();
    		F1.setVisible(true);
    		System.out.println("fin");
    		System.out.println(F1.getSizeLines()+"fin");
    		System.out.println(F1.getSizeColumns()+"fin");
     
    		System.out.println(F1.getSizeLines()+"fin");
     
    	}
     
     
    }
    donc avec ma classe NewGameWindow qui hérite de JDialog.

    j'arrive bien à réccuperer les valeurs => avec les println de l'actionPerformed mais les println du main passent à 0 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    0fin
    0fin
    7at1
    7at1
    voila ce qu'il me donne .... quand je lui rentre 7 et 7. J'obtiens bien sur les 2 dernier la bonne valeur mais les 2 premiers passent avant => ce qui me pose pb... et donc sont initialisés à 0.

    Qu'est ce que je peux faire pour passer après l'actionPerformed ?

    merci bcp

  13. #13
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Citation Envoyé par phestaca
    dslé de vous embeter encore j'ai remanié mon prog pour l'instant pour essayer d'y voir plus clair ....
    En effet, c'est beaucoup plus clair comme ça !

    Citation Envoyé par phestaca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    0fin
    0fin
    7at1
    7at1
    voila ce qu'il me donne .... quand je lui rentre 7 et 7. J'obtiens bien sur les 2 dernier la bonne valeur mais les 2 premiers passent avant => ce qui me pose pb... et donc sont initialisés à 0.

    Qu'est ce que je peux faire pour passer après l'actionPerformed ?

    merci bcp
    Je ne vois pas ton problème ?

    - Tu lances ton application, la méthode main() est appelé ...

    - Un objet PrincipalWindow est crée et ses variables d'instances _nbOfLines et _nbOfColumns sont initialisés à 0 (ce qu'on voit par les 2 premiers println de ton main)

    - Même si tu a fait F1.pack(); et F1.setVisible(true); avant tes println(), comme l'affichage de la frame se fait dans un nouveau thread, les system.out.println (qui te confirment que tes variables (_nbOfLines et _nbOfColumns) sont à 0) sont affichés dans ta console avant / pendant que s'affiche ton interface graphique.

    - Dans ton interface, tu appelles l'action NewGame via ton menu et cette action définit les valeurs 7 et 7 pour tes variables _nbOfLines et _nbOfColumns, ce que tu vois également par tes deux derniers println().

    - A ce stade, ces 2 variables de PrincipalWindow sont à 7 ! Pour t'en convaincre, à partir d'un autre menu, refait juste un println() et tu verras qu'elles sont à 7.

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    merci bcp pour ta réponse, mais comment ou où écrire mon code suivant pour qu'il me prenne ces valeurs 7 et 7 ?

    je dois tout mettre dans mon action performed ?

  15. #15
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Citation Envoyé par phestaca
    merci bcp pour ta réponse, mais comment ou où écrire mon code suivant pour qu'il me prenne ces valeurs 7 et 7 ?
    Quel code ?

    Citation Envoyé par phestaca
    je dois tout mettre dans mon action performed ?
    tout = quoi ?

    Pour l'instant:
    Au départ, tes 2 variables sont à 0. Ensuite, j'imagine que tu dois les saisir via une autre fenêtre (NewGameWindow) appelée via ton menu. Et dans ton actionPerformed, tes 2 variables prennent les valeurs saisies.

    Je comprend pas ce que tu veux (Je suis pas dans ta tête :
    )

    Si au départ, tu veux les mettre à 7, fais le dans ton constructeur.
    Si tu me demandes si le code qui modifie ces 2 variables peut resté dans l'action performed? Si tu ne fais que ça, oui ! Si tu as pleins d'autre chose à faire, crée toi d'autres méthodes, voir d'autres objets ... pour éviter d'avoir un actionPerformed de 3 000 000 000 de lignes !!!

    Soit plus explicite dans tes demandes pour que je puisse t'aider au mieux.

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    euh dslé si je suis pas assez précis.

    c'est justement pour essayer de pas avoir 300 000 lignes de code dans l'actionperformed que j'essaie d'en sortir ....

    pour le code suivant : je ne l'ai pas encore codé....


    tout ce que je veux, cé placer mes prochaines lignes de code derrière la réccupération des deux valeurs que l'utilisateur met dans la fenetre newgamewindow pour pouvoir utiliser ces valeurs...

    j'espère avoir été plus clair.

    merci bpc

    ph

  17. #17
    Membre confirmé Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Points : 570
    Points
    570
    Par défaut
    le mieux c'est de creer une nouvelle methode, par exemple, creerEnvironnement() qui se servira des valeurs que tu auras recuperer et dans laquelle tu feras tout ton traitement. Ainsi ton actionPerformed se limitera a peu pres a n'appeler que des methodes et ne sera pas surchargé.
    Les deux principales inventions sorties de Berkeley sont UNIX et le LSD. Difficile de croire à une quelconque coïncidence - Jeremy S. Anderson

    Avant de vouloir qu’un logiciel soit réutilisable, il faudrait d’abord qu’il ait été utilisable - Ralph Johnson

  18. #18
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Oui, c'est plus clair ...
    J'avoue, c'est aussi de ma faute, par code suivant, j'avais pas compris dans le sens "code à venir qui sera éxécuter par la suite".

    Je vais donc essayer d'être clair à mon tour :
    La méthode actionPerformed de ta classe permet de modifier les valeurs de tes deux variables d'instances. Jusque là tout va bien.
    Ensuite, tu veux executer d'autres lignes de code.
    2 solutions s'offrent à toi :
    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
     
    class PrincipalWindow()
    {
         public actionPerformed(...)
         {
               // Modif de tes deux variables de PrincipalWindow
               // _nbOfLines et _nbOfColumns
               ...
     
               // SOLUTION A : Code à executer dans un autre objet
               // ---------------------------------------------------------------
     
               // Soit tu instancie un autreObject ici ou 
               // il a été déjà instancié et référencé dans le main.
               TonObject autreObject = ...
     
               // Puis soit tu appelles une méthode de cet autreObjet
               // qui a déjà réferencé ta PrincipalWindow pour accéder à ses propriétés
               autreObject.methode();
               // ou tu lui la passe à ce moment là
               autreObject.methode(this);
     
     
               // SOLUTION B : Code à executer dans une autre méthode de ta PrincipalWindow
               // ----------------------------------------------------------------------
               autreMethode(); // creerEnvironnement(); par exemple
          }
     
          public void autreMethode()  // creerEnvironnement(); par exemple
          {
               // tu fais ton traitement
               // tu peux accéder à tes variables d'instances
               // _nbOfLines et _nbOfColumns
          }
    }

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    merci bcp pour vos réponses et votre aide.

    je vais faire ce que vous me dites.

    cordialement

    ph

Discussions similaires

  1. [Débutant] couleur en fonction de valeur
    Par m4tl4b dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/05/2008, 08h50
  2. Réponses: 3
    Dernier message: 13/12/2007, 13h44
  3. Réponses: 1
    Dernier message: 09/12/2007, 17h44
  4. débutant Faire un curseur de valeurs
    Par alphanet dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/11/2007, 17h25
  5. Réponses: 2
    Dernier message: 29/06/2007, 14h49

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