Précédent   Forum des professionnels en informatique > Java > Général Java > Débuter
Débuter Forum d'entraide pour bien débuter avec Java
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2012, 21h52   #61
Membre éclairé
 
Homme Laurent Bernabé
Inscription : novembre 2003
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Laurent Bernabé
Âge : 31
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : novembre 2003
Messages : 303
Points : 377
Points : 377
Citation:
Envoyé par assistech Voir le message
Merci Robin, ca c est déjà fait je bloque a l appel de la classe, c est pour cela que je demandais si quelqu'un pouvait poster sa classe ou le début que je m'inspire!
Salut assistech, je t'ai déjà dit comment je fonctionne. Si tu veux de l'aide avant que la correction soit publiée, je peux le faire. En revanche, il faudra juste que tu exprimes ce qui te bloque. Il ne faudra pas te contenter de demander un simple (extrait de) code.
tails est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 22h14   #62
Futur Membre du Club
 
Inscription : février 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 16
Points : 18
Points : 18
Merci tails

Citation:
Qu'entends-tu par là ? Un JButton est un composant : il a donc diverses propriétés (texte, couleur de fond, ...)
En fait c'est comment connaitre la valeur d'une variable lorsqu'il s'agit d'une variable de type objet? Dans le but de detecter des erreurs comme dans ce cas là.
loncle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 22h17   #63
Membre éclairé
 
Homme Laurent Bernabé
Inscription : novembre 2003
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Laurent Bernabé
Âge : 31
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : novembre 2003
Messages : 303
Points : 377
Points : 377
Tu ne peux pas, justement : tu es obligé d'interroger les différentes méthodes de l'objet.
Ainsi si tu veux connaitre le texte d'un JButton => bouton.getText(). Bien sûr, en supposant que le JButton se nomme bouton.
tails est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 22h34   #64
Membre à l'essai
 
Homme
Inscription : janvier 2012
Messages : 22
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 22
Points : 22
Points : 22
Bonsoir tout le monde, je reviens vers toi Tails afin de savoir si tu avais une date approximative de publication Merci
assistech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 22h37   #65
Membre éclairé
 
Homme Laurent Bernabé
Inscription : novembre 2003
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Laurent Bernabé
Âge : 31
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : novembre 2003
Messages : 303
Points : 377
Points : 377
Salut assistech,

Saches que pour l'instant je suis en train de rédiger une première ébauche (donc à être vérifiée) du chapitre 7.
Comme il y a 11 chapitres agrémentés d'exercices, si je me débrouille bien, je peux espérer finir la rédaction d'ici deux semaines maximum, et la publication d'ici deux semaines et demi.

Enfin, j'espère.
tails est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 22h40   #66
Membre à l'essai
 
Homme
Inscription : janvier 2012
Messages : 22
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 22
Points : 22
Points : 22
Ok merci de ta reponse rapide. je pensais que tu allais d abord publier les premiers chapitre et ensuite les autres. bonne soiree. seb
assistech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 11h46   #67
Membre éclairé
 
Homme Laurent Bernabé
Inscription : novembre 2003
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Laurent Bernabé
Âge : 31
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : novembre 2003
Messages : 303
Points : 377
Points : 377
Je pensais au départ, mais on m'a recommandé de faire tout directement : histoire d'être sur que le tout soit cohérent. Et finalement, je pense aussi que c'est mieux de procéder ainsi.
tails est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 22h44   #68
Futur Membre du Club
 
Inscription : février 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 16
Points : 18
Points : 18
J'ai un probleme avec les tableaux
J'ai crée une boucle pour créer les boutons de la calculatrice et charger les controles dans le panneau. Pourtant j'ai une erreur d'execution (pas d'erreur de compilation). En plus je ne comprends pas :

bouton [i] = new JButton();

Je ne comprends pas comment le libéllé du bouton est passé?

Code :
1
2
3
4
5
6
7
8
JButton[] boutons = new JButton[10];
int nombreDeBoutons = boutons.length;
 
for(int i=0; i< nombreDeBoutons; i++)
{
  boutons[i] = new JButton();
  panneauChiffres.add(boutons[i]);
}
loncle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 00h09   #69
Modérateur
 
Avatar de Robin56
 
Homme Nicolas
Ingénieur développement logiciels
Inscription : juin 2009
Messages : 1 723
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2009
Messages : 1 723
Points : 4 942
Points : 4 942
Citation:
Envoyé par loncle Voir le message
Pourtant j'ai une erreur d'execution (pas d'erreur de compilation).
Quelle est l'erreur de l'exécution et quand se produit-elle (au clic sur le bouton, au lancement, ...) ?

Citation:
Envoyé par loncle Voir le message
Je ne comprends pas comment le libellé du bouton est passé?
Eh bien dans ton cas, il ne l'est tout simplement pas. Il te faudrait faire quelque chose du genre plutôt :
Code :
1
2
JButton bouton = new JButton();
bouton.setLabel("toto");
Ou une variante :
Code :
JButton bouton = new JButton("toto");
__________________
Robin56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2012, 21h20   #70
Futur Membre du Club
 
Inscription : février 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 16
Points : 18
Points : 18
Merci Robin56, je vais revoir cette boucle. J'ai un autre probleme dans ce bloc :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MoteurCalcul implements ActionListener 
{
      public void actionPerformed(ActionEvent événement) 
{
// Retrouve la source de l'action

JButton boutonCliqué = (JButton) événement.getSource();
// Retrouve le libellé du bouton
String libelléBoutonCliqué = boutonCliqué.getText();

// Concatène le libellé du bouton au texte
// de la boîte de message

JOptionPane.showConfirmDialog(null,
"Tu as appuyé sur " + libelléBoutonCliqué,
"Juste un test",
JOptionPane.PLAIN_MESSAGE);
}
}
Je ne comprends pas l'enchainement : La classe MoteurCalcul implante l'interface ActionListener. On utilise ensuite la méthode actionPerformed de cette classe avec la variable "événement" de type ActionEvent en argument?
Pourtant la méthode est "void" donc ne retourne rien, est ce possible?

Ensuite la méthode getSource() appartient à la classe ActionEvent.
Ca voudrait dire qu'une méthode avec une variable de type objet( est ce le bon terme?) en argument permet d'appeller une méthode du type passé en argument?
loncle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2012, 21h43   #71
Modérateur
 
Avatar de Robin56
 
Homme Nicolas
Ingénieur développement logiciels
Inscription : juin 2009
Messages : 1 723
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2009
Messages : 1 723
Points : 4 942
Points : 4 942
Alors je vais tenter de comprendre ce que tu me dis point par point.

Citation:
Envoyé par loncle Voir le message
Je ne comprends pas l'enchainement : La classe MoteurCalcul implante l'interface ActionListener. On utilise ensuite la méthode actionPerformed de cette classe avec la variable "événement" de type ActionEvent en argument?
Pourtant la méthode est "void" donc ne retourne rien, est ce possible?
Oui c'est possible qu'une méthode ne retourne rien. La méthode actionPerformed() n'a pas besoin de renvoyer quoi que ce soit, elle doit simplement se charger d'effectuer une action. Que voudrais tu que cette méthode te retourne ? De plus elle nous donne en paramètre un objet de type ActionEvent qui contient toutes les infos nécessaire, le type d'action, le composant source, ...

En faisant l'exemple, ci-dessous, par exemple, on remarque son rôle (je n'ai pas testé ce morceau de code, il peut y avoir des petites "boulettes") :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Gère les évènements des composants graphique
public class Action implements ActionListener {
  public void actionPerformed(ActionEvent event) {
    JButton bouton = (JButton) event.getSource();
    // On a cliqué sur le bouton First
    System.out.println("On a cliqué sur le bouton " + bouton.getText());
  }
}
 
// Classe lanceur
public class Lanceur {
  public static void main(String[] args) {
    ActionListener action = new Action();
    JButton firstButton = new JButton("First");
    firstButton.addActionListener(action); // Liaison du bouton et du listener d'action
  }
}

Citation:
Envoyé par loncle
Ensuite la méthode getSource() appartient à la classe ActionEvent.
Ca voudrait dire qu'une méthode avec une variable de type objet( est ce le bon terme?) en argument permet d'appeller une méthode du type passé en argument?
Alors là j'ai un peu de mal à saisir ce que tu veux me faire comprendre. "une méthode avec une variable de type objet" ? Eh bien dans notre cas, actionPerformed() dispose d'une variable de type ActionEvent plutôt non ?
__________________
Robin56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 13h22   #72
Invité de passage
 
Inscription : février 2012
Messages : 2
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 2
Points : 2
Points : 2
Bonjour, j'ai un petit soucis sur l'exercice "VoitureJamesBond" du chapitre 2.

J'arrive bien à faire un override de la méthode public int rouler(int durée) mais j'arrive pas à retourner la valeur de durée sans ajouter un println à la méthode.

class VoitureJamesBond
Code :
1
2
3
4
5
6
7
8
public class VoitureJamesBond extends Voiture {
	
	public int rouler(int durée) {
		System.out.println("Bla bla bla, le conducteur roule depuis " + durée + " heures");
		return distance = durée * 180 ;
		
	}
}
class PropriétaireVoiture
Code :
1
2
3
4
5
6
7
8
9
10
11
12
public class PropriétaireVoiture {
 
	public static void main(String[] args) {
		Voiture maVoiture = new Voiture();
		VoitureJamesBond astonMartin = new VoitureJamesBond();
 
		astonMartin.démarrer();
		int distance = astonMartin.rouler(2);
		System.out.println("Bla bla bla, il a parcouru " + distance + " Kilomètres , bla bla bla);
		astonMartin.arrêter();
	}
}
agnetis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 13h51   #73
Membre éclairé
 
Homme Laurent Bernabé
Inscription : novembre 2003
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Laurent Bernabé
Âge : 31
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : novembre 2003
Messages : 303
Points : 377
Points : 377
Bonjour,

Déjà tu as oublié de refermer la chaine de caractères (par un copier/coller ?) dans ta classe PropriétaireVoiture.

Après, je dirais que l'erreur ne peut pas venir du fait que tu retires/remette la ligne avec System.out.println().
tails est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 18h22   #74
Futur Membre du Club
 
Inscription : février 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 16
Points : 18
Points : 18
Citation:
Envoyé par Robin56 Voir le message
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Gère les évènements des composants graphique
public class Action implements ActionListener {
  public void actionPerformed(ActionEvent event) {
    JButton bouton = (JButton) event.getSource();
    // On a cliqué sur le bouton First
    System.out.println("On a cliqué sur le bouton " + bouton.getText());
  }
}
 
// Classe lanceur
public class Lanceur {
  public static void main(String[] args) {
    ActionListener action = new Action();
    JButton firstButton = new JButton("First");
    firstButton.addActionListener(action); // Liaison du bouton et du listener d'action
  }
}
Je ne comprends pas bien : ActionListener action et ActionEvent event.
la variable action est de type ActionListener, elle est passé en parametre à la méthode actionPerformed. Mais event est de type ActionEvent. Il n'est pas nécéssaire que la variable soit du meme type?
loncle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 18h31   #75
Modérateur
 
Avatar de Robin56
 
Homme Nicolas
Ingénieur développement logiciels
Inscription : juin 2009
Messages : 1 723
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2009
Messages : 1 723
Points : 4 942
Points : 4 942
Citation:
Envoyé par loncle Voir le message
Je ne comprends pas bien : ActionListener action et ActionEvent event.
la variable action est de type ActionListener, elle est passé en parametre à la méthode actionPerformed. Mais event est de type ActionEvent.
Ce n'est pas le cas non, regarde bien.

"action" est bien de type ActionListener et elle est passée à une fonction addActionListener qui prend un paramètre de type ActionListener.

Je n'appelle pas la méthode actionPerformed. A partir du moment où j'ai lié ma classe ActionListener à mon composant JButton, la méthode actionPerformed sera automatiquement appelée dès le clic sur le bouton. Comme tu le vois je ne gère donc pas son appel. C'est transparent pour moi.

Citation:
Envoyé par loncle Voir le message
Il n'est pas nécéssaire que la variable soit du meme type?
Si si.
__________________
Robin56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 19h14   #76
Futur Membre du Club
 
Inscription : février 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 16
Points : 18
Points : 18
Effectivement, j'avais mal regardé. Il n'y a pas d'appel de la méthode actionPerformed.

Si j'ai bien compris la ligne : firstButton.addActionListener(action);

appelle la classe Action et sa méthode.

Si Action possédait 2 méthodes, les 2 méthodes seraient appelées systématiquement?
loncle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 19h25   #77
Modérateur
 
Avatar de Robin56
 
Homme Nicolas
Ingénieur développement logiciels
Inscription : juin 2009
Messages : 1 723
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2009
Messages : 1 723
Points : 4 942
Points : 4 942
Citation:
Envoyé par loncle Voir le message
Effectivement, j'avais mal regardé. Il n'y a pas d'appel de la méthode actionPerformed.

Si j'ai bien compris la ligne : firstButton.addActionListener(action);

appelle la classe Action et sa méthode.

Si Action possédait 2 méthodes, les 2 méthodes seraient appelées systématiquement?
Ce n'est pas exactement ça. Il faut plutôt voir ça comme une liaison. En détaillant les interactions, on a donc :
1. Le JButton qui est le composant graphique.
2. ActionListener qui est l'écouteur d'évènement.
3. addActionListener() qui permet de créer la liaison entre le composant graphique et l'écouteur d'évènement. Grâce à cette méthode, c'est comme si l'on disait : "Cette classe ActionListener va écouter les évènements du composant JButton".
4. Et il est décris dans la spécification de Java que lorsque je vais cliquer sur le JButton, ceci va appeler la méthode "actionPerformed()" de l'écouteur d'évènement lié avec. Il n'est donc absolument pas mentionné que n'importe quelle méthode de la classe ActionListener va être appelée à ce moment là.
__________________
Robin56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 22h59   #78
Invité de passage
 
Inscription : février 2012
Messages : 2
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 2
Points : 2
Points : 2
Citation:
Envoyé par tails Voir le message
Bonjour,

Déjà tu as oublié de refermer la chaine de caractères (par un copier/coller ?) dans ta classe PropriétaireVoiture.
Ah oui, merci, c'est suite au copier/coller
Bon j'ai rectifié mon code, je pense avoir corrigé des erreurs, le résultat s'affiche bien tout du moins.

Class VoitureJamesBond

Code :
1
2
3
4
5
public class VoitureJamesBond extends Voiture {
	public int rouler(int duree) {
		return duree * 180;
	}
}
Class JamesBond

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
public class JamesBond {
 
	public static void main(String[] args) {
		VoitureJamesBond astonMartin = new VoitureJamesBond();
 
		astonMartin.démarrer();
 
		int distance;
		int duree;
		distance = astonMartin.rouler(6);
		duree = distance / 180;
		System.out.println("Déboulant comme une flêche dans un nuage de fumée blanche, James vient de conduire pendant " + duree + " heures et à une allure vertigineuse puisqu'il a parcouru un total de " + distance + " kilomètres");
 
		astonMartin.arrêter();
		}
}
Si, je pouvai avoir confirmation qu'il n'y a pas d'erreurs. Merci
agnetis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 09h27   #79
Membre éclairé
 
Homme Laurent Bernabé
Inscription : novembre 2003
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Laurent Bernabé
Âge : 31
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : novembre 2003
Messages : 303
Points : 377
Points : 377
Citation:
Envoyé par agnetis Voir le message
Ah oui, merci, c'est suite au copier/coller
Bon j'ai rectifié mon code, je pense avoir corrigé des erreurs, le résultat s'affiche bien tout du moins.

Class VoitureJamesBond

Code :
1
2
3
4
5
public class VoitureJamesBond extends Voiture {
	public int rouler(int duree) {
		return duree * 180;
	}
}
Class JamesBond

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
public class JamesBond {
 
	public static void main(String[] args) {
		VoitureJamesBond astonMartin = new VoitureJamesBond();
 
		astonMartin.démarrer();
 
		int distance;
		int duree;
		distance = astonMartin.rouler(6);
		duree = distance / 180;
		System.out.println("Déboulant comme une flêche dans un nuage de fumée blanche, James vient de conduire pendant " + duree + " heures et à une allure vertigineuse puisqu'il a parcouru un total de " + distance + " kilomètres");
 
		astonMartin.arrêter();
		}
}
Si, je pouvai avoir confirmation qu'il n'y a pas d'erreurs. Merci

Cela me paraît correct.
tails est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2012, 22h19   #80
Futur Membre du Club
 
Inscription : février 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 16
Points : 18
Points : 18
Toujours dans le meme chapitre, je ne comprends pas précisement la notion de référence.

Le constructeur MoteurCalcul appelle: une reference à l'instance de l'objet calculatrice (page97).

Je croyais qu'un objet était une instance d'une classe.
Mais l'instance d'un objet c'est une référence? Au final c'est quoi une référence?Un objet?

Le but de la référence est de "récupérer" les variables de la classe Calculatrice, dans la Classe MoteurCalcul.
Donc on peut récupérer toutes les variables d'un seul coup?


Dans le classe Calculatrice:

Code :
MoteurCalcul moteurCalcul = new MoteurCalcul(this);
le "this" represente quoi? une Classe?Un objet (de classe Calculatrice)?

Autre point:
Quel est la différence entre:

Code :
NumberFormat formatNombres = NumberFormat.getInstance();
Et

Code :
NumberFormat formatNombres = new NumberFormat();
formatNombres est un objet et il n'a pas besoin d'etre instancié (par "new") parce que getInstance() est une méthode static?

Encore un autre point :

Quel est la différence entre :

Code :
double monNombre = (Double)nombre.parse(maChaine, new ParsePosition(0));
Et

Code :
double monNombre = nombre.parse(maChaine, new ParsePosition(0)).doubleValue();

EDIT: ajout question sur la classe NumberFormat.
loncle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h39.


 
 
 
 
Partenaires

Hébergement Web