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

Collection et Stream Java Discussion :

Contenu pile stack


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Par défaut Contenu pile stack
    Bonjour a tous,
    en fait j ai programmé en java dans une classe une fenetre avec differents boutons qui lorsque ils sont pressés envoie un numero dans une pile Stack et ma question était de savoir comment accéder au contenu de cette meme pile depuis une autre classe ??
    Pourriez vous me donner un coup de pouce svp...
    Merci d' avance pour votre aide!

  2. #2
    Membre confirmé
    Avatar de chriscoolletoubibe
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Par défaut
    Hé bien tu fais en sorte que ta stack soit déclarée de manière statique dans une de tes classes.
    De ce fait toute les autre classe y accèderont par : LeNomDeLaClass.taVariableStatiqueQuiContientLeStack (utilise des accesseurs statiques c'est encore plus propre)

    Sinon tu peux toujours appeler une méthode de la classe qui va devoir faire le traitement en lui passant en paramètre la stack en question.
    Exemple: laMethodeDeMaClasseQuiDoitTraitéeUneStackEnProvenanceDAilleur(Stack maStackQuiVientDAilleur)

    J'espère que c'est assez clair

    Enjoy!

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Par défaut
    Merci beaucoup je me permet de mettre un bout de mes codes :

    Voila en fait un bout de ma premiere classe definissant les fenetres aves les boutons qui lors de la pression renvoie une valeur dans la pile Stack
    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
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
     
    import java.awt.Dimension;
    import java.awt.Rectangle;
    import java.util.Stack;
     
    import javax.swing.Icon;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JEditorPane;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
     
    public class fenetre  {
     
     
    //	public class elements implements sujet , verbe , complements {}
     
    	static Stack<Integer> pile = new Stack<Integer>();  //  @jve:decl-index=0:
     
     
     
    	private JFrame jFrame = null;  //  @jve:decl-index=0:visual-constraint="12,28"
    	private JPanel jContentPane = null;
    	private JPanel Carnivore = null;
    	private JPanel Manger = null;
    	private JPanel qui_quoi = null;
    	private JPanel moment = null;
    	private JPanel lieu = null;
    	private JButton jButton = null;
    	private JButton jButton1 = null ;
    	private JButton jButton2 = null ;
    	private JButton jButton3 = null ;
    	private JButton jButton4 = null ;
    	private JButton jButton5 = null ;
    	private JButton jButton6 = null ;
    	private JButton jButton7 = null ;
    	private JButton jButton8 = null ;
    	private JButton jButton9 = null ;
    	private JButton jButton10 = null ;
    	private JButton jButton11 = null ;
    	private JButton jButton12 = null ;
    	private JButton jButton13 = null ;
    	private JButton jButton14 = null ;
    	private JButton jButton15 = null ;
    	private JButton jButton16 = null ;
    	private JButton jButton17 = null ;
    	private JButton jButton18 = null ;
    	private JButton jButton19 = null ;
     
     
    	private JEditorPane jEditorPane = null;
    	/**
             * This method initializes jFrame       
             *      
             * @return javax.swing.JFrame   
             */
    	@SuppressWarnings("unused")
     
    	public fenetre (){
    		JFrame f = getJFrame();
    		f.setVisible(true);
    	}
     
     
    	private JFrame getJFrame() {
    		if (jFrame == null) {
    			jFrame = new JFrame();
    			jFrame.setSize(new Dimension(849, 641));
    			jFrame.setContentPane(getJContentPane());
    		}
    		return jFrame;
    	}
     
    	/**
             * This method initializes jContentPane 
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			jContentPane = new JPanel();
    			jContentPane.setLayout(null);
    			jContentPane.add(getSujet(), null);
    			jContentPane.add(getManger(), null);
    			jContentPane.add(getQui_quoi(), null);
    			jContentPane.add(getMoment(), null);
    			jContentPane.add(getLieu(), null);
    			jContentPane.add(getJEditorPane(), null);
     
    		}
    		return jContentPane;
    	}
     
    	/**
             * This method initializes Carnivore    
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getSujet() {
    		if (Carnivore == null) {
    			Carnivore = new JPanel();
    			Carnivore.setLayout(null);
    			Carnivore.setBounds(new Rectangle(15, 9, 141, 587));
    			Carnivore.add(getJButton(), null);
    			Carnivore.add(getJButton1(), null);
    			Carnivore.add(getJButton3(), null);
    			Carnivore.add(getJButton4(), null);
    			Carnivore.add(getJButton5(), null);
    			Carnivore.add(getJButton4(), null);
    			Carnivore.add(getJButton7(), null);
    			Carnivore.add(getJButton6(), null);
    			Carnivore.add(getJButton6(), null);
    			Carnivore.add(getJButton7(), null);
    			Carnivore.add(getJButton2(), null);
     
    		}
    		return Carnivore;
    	}
     
     
     
    	/**
             * This method initializes Manger       
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getManger() {
    		if (Manger == null) {
    			Manger = new JPanel();
    			Manger.setLayout(null);
    			Manger.setBounds(new Rectangle(179, 11, 147, 513));
    			Manger.add(getJButton8(), null);
    			Manger.add(getJButton9(), null);
    			Manger.add(getJButton10(), null);
    			Manger.add(getJButton8(), null);
    		}
    		return Manger;
    	}
     
    	/**
             * This method initializes qui_quoi     
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getQui_quoi() {
    		if (qui_quoi == null) {
    			qui_quoi = new JPanel();
    			qui_quoi.setLayout(null);
    			qui_quoi.setBounds(new Rectangle(359, 14, 137, 406));
    			qui_quoi.add(getJButton11(), null);
    			qui_quoi.add(getJButton12(), null);
    			qui_quoi.add(getJButton13(), null);
    		}
    		return qui_quoi;
    	}
     
    	/**
             * This method initializes moment       
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getMoment() {
    		if (moment == null) {
    			moment = new JPanel();
    			moment.setLayout(null);
    			moment.setBounds(new Rectangle(524, 14, 129, 407));
    			moment.add(getJButton14(), null);
    			moment.add(getJButton15(), null);
    			moment.add(getJButton16(), null);
    		}
    		return moment;
    	}
     
    	/**
             * This method initializes lieu 
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getLieu() {
    		if (lieu == null) {
    			lieu = new JPanel();
    			lieu.setLayout(null);
    			lieu.setBounds(new Rectangle(676, 14, 121, 406));
    			lieu.add(getJButton17(), null);
    			lieu.add(getJButton18(), null);
    			lieu.add(getJButton19(), null);
    		}
    		return lieu;
    	}
     
    	/**
             * This method initializes jButton      
             *      
             * @return javax.swing.JButton  
             */
    	private JButton getJButton() {
    		if (jButton == null) {
    			Icon img = new ImageIcon("lion.jpg");
    			jButton = new JButton(img);
    			jButton.setBounds(new Rectangle(29, 58, 94, 54));
    			jButton.setText("");
    			jButton.addActionListener(new java.awt.event.ActionListener() {
    				public void actionPerformed(java.awt.event.ActionEvent e) {
    					//System.out.println(analyselex.lion); // TODO Auto-generated Event stub actionPerformed()	
    					pile.push(1);
    			}
    			});
    		}
    		return jButton;
    	}
     
    	private JButton getJButton1() {
    		if (jButton1 == null) {
    			Icon img = new ImageIcon("leopard.jpg");
    			jButton1 = new JButton(img);
    			jButton1.setBounds(new Rectangle(30, 3, 93, 50));
    			jButton1.setText("");
    			jButton1.addActionListener(new java.awt.event.ActionListener() {   
    				public void actionPerformed(java.awt.event.ActionEvent e) {    
    					//System.out.println(elements.leopard); // TODO Auto-generated Event stub actionPerformed()
    					pile.push(2);
    				}
     
    			});
    		}
    	return jButton1;
     
     
     
    	}	
     
     
     
    	private JButton getJButton2() {
    		if (jButton2 == null) {
    			Icon img = new ImageIcon("buffle.jpg");
    			jButton2 = new JButton(img);
    			jButton2.setBounds(new Rectangle(28, 134, 93, 60));
    			jButton2.setText("");
    			jButton2.addActionListener(new java.awt.event.ActionListener() {
    				public void actionPerformed(java.awt.event.ActionEvent e) {
    					//System.out.println(elements.buffle); // TODO Auto-generated Event stub actionPerformed()	
    					pile.push(3);
    				}
    			}
     
    			);
    		}
    		return jButton2;
    	}
    Puis en fait a l aide d une autre classe analyselex je souhaiterai sortir le contenu de la pile stack afin de definir a quoi correspond les numeros 1 ,2 ou 3...donc d apres tes indications j ai declaré la pile en static et donc pour la classe analyselex je devrai donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class analyselex extends fenetre   {
     
    	fenetre.stack
    }
    Ca serait un truc comme ca ? Merci beaucoup pour ton aide jdois dire etre carrement largué...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Par défaut
    En fait jepnserai finalement plus a quelque chose dans ce genre la , non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import java.util.Stack;
     
     
    public class analyselex extends fenetre   {
     
    	void definition (Stack pile){
     
     
    	}
     
    	}

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Par défaut
    Mon but avec cette classe analyselex est en fait de recuperer le contenu de la pile et comparer un a un les nombres obtenu afin de definir si ce sont des sujets , verbe ou complements...grace aux instructions precedents j ai essayer de coder ca mais je ne sais pas vraiment si c est coherent...merci a ce qui oserons y jeter un coup d' oeil a ce bout de 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
     
    import java.util.Stack;
     
     
    public class analyselex extends fenetre   {
     
     
    	void definition (Stack pile){
     
    		@SuppressWarnings("unused")
    		Integer a = (Integer)pile.pop();	// L integer a recupere la premiere valeur dispo de la pile
     
    			if (a == 1){
    				Sujet("Le lion");			// si egal a 1 c est un sujet
    		}	
    			else if(a == 2){
    				Sujet("Le leopard");
    		}
     
     
    			else if(a == 9){
    				Verbe("mange");				// si egal a 9 c est un verbe
    		}
    			else if(a == 10){
    				Verbe("boit");
    		}
    			else if(a == 11){
    				Verbe("dort");
    		}
    			else if(a == 12){
    				Complement("de la viande"); // si egal a 12 c est un complement
    		}
    			else if(a == 13){
    				Complement("le gazon");
    		}
    			else if(a == 14){
    				Complement("l'eau");
    		}
     
    			else{
    				return;
    			}
    	}
     
     
    	static void Complement(String string) {
     
    	}
     
     
    	static void Verbe(String string) {
     
    	}
     
     
    	static void Sujet(String string) {
     
    	}
    }

  6. #6
    Membre confirmé
    Avatar de chriscoolletoubibe
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Par défaut
    Disons que si tu fais un test sur des entiers numériques, l'utilisation d'un switch /case est plus élégante.

    Après a toi de voir si d'un point de vu fonctionnel la déclaration satique est meilleur ou pas.

    L'avantage de passer ta pile en paramètre à ta méthode d'analyse, c'est que tu peu capitaliser cette partie du code afin d'analyser d'autres piles.

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/11/2013, 21h05
  2. Faire une pile (stack) avec glib
    Par ymoreau dans le forum C
    Réponses: 2
    Dernier message: 18/02/2011, 09h39
  3. Augmenter la taille de la pile (stack) avec -Xss<size>
    Par linuxeur dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/02/2010, 09h36
  4. Cherche tutoriaux sur stack segment (pile) et fonctionement de la mémoire
    Par atrhacker dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 20/11/2009, 20h23
  5. Comment imprimer le contenu d'un TStringGrid
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/06/2002, 15h41

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