Cette fois concernant le JSplitPane : j'ai repris le code exemple fourni dans le cours ( https://openclassrooms.com/courses/apprenez-a-programmer-en-java/conteneurs-sliders-et-barres-de-progression) et j'ai juste ajouté un container JPanel . Ensuite plutôt que d'ajouter directement le JSlpitPane au JFrame, je le place d'abord dans le container et j'ajoute ce container au JFrame . Eh ben le résultat n'est pas celui attendu : je pensais que l'aspect serait identique mais pas du tout .
L'idée d'intercaler un container est pour ensuite d'y ajouter d'autres composant ( boutons ,..).
private JPanel container = new JPanel();
public Fenetre(){
this.setLocationRelativeTo(null);
this.setTitle("Gérer vos conteneur");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(200, 200);
//On crée deux conteneurs de couleurs différentes
JPanel pan = new JPanel();
pan.setBackground(Color.blue);
JPanel pan2 = new JPanel();
pan2.setBackground(Color.red);
//On construit enfin notre séparateur
split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, pan, pan2);
//option petites fleches
split.setOneTouchExpandable(true);
//On le passe ensuite au content pane de notre objet Fenetre
//placé au centre pour qu'il utilise tout l'espace disponible
container.add(split);
this.getContentPane().add(container, BorderLayout.CENTER);
//this.getContentPane().add(split, BorderLayout.CENTER);
this.setVisible(true);
}
public static void main(String[] args){
Fenetre fen = new Fenetre();
}
}
Resultat :(( :
J'aurais besoins d'explications ...
Merci d'avance
Ton problème vient du layout du panel.
Le panel utilise le flowLayout par défaut. Ton container n'utilise pas la totalité de la zone comme le fait la frame (avec le borderlayout).
Il te suffit de faire un setLayout(new BorderLayout) sur le panel Container pour que cela fonctionne.
Un accès premium d'un mois avec le code AXEL-8RR3 C'est cadeau et c'est illimité !
je viens de terminer le projet final de ce cours et j'aimerai faire une remarque d'ordre général afin de savoir si je n'ai pas eu de chance ou si mon sentiment est partagé par d'autres personnes et dans ce cas là il serait intéressant de réfléchir à des solutions pour y remédier.
En gros sur les 6 corrections que j'ai eu à faire, il n'y a eu seulement 1 travail sérieux et un autre où la personne à essayé. Les 4 autres projets étaient soit vide, soit contenant le projet du début de ce cours ou alors directement un copier/coller de la correction sans aucune modification apportées...
J'ai du coup l'impression que certaines personnes rendent un projet vide afin d'obtenir la correction et pour ensuite le refournir afin de valider ce cours avec un autre compte...
Merci de réagir à ce message pour savoir comment cela ce passe pour d'autres personnes.
Il est possible en effet possible que cela se produise, si tu es sur que c'est une copie conforme avec la correction fourni, il faut pénaliser. je doute que les administrateur puisse faire quoi que ce soit à ce sujet malheureusement (à moins de retirer les corrections, ou ne les fournir qu'aux comptes premium)
- Edité par AxelHuberty 13 avril 2016 à 18:51:36
Un accès premium d'un mois avec le code AXEL-8RR3 C'est cadeau et c'est illimité !
bonjour! je suis un apprenti de java, j'aimerai un peu savoir sur les exceptions personnaliser, dans l’exercice de construction de ville et capitale je me trouves bloqué dans la création de la classe de base :"exception.java" et sa classe dérivée :"NombreHabitantException.java" , j'ai aucune idée sur le code de la classe exception.java je sais pas si vous pouvez m'aidé merci.
je suis un apprenti en java, j'aimerais un peu savoir dans la partie des exceptions personnaliser , dont l’exercice le nombres de la population négative
leurs classe sont : ville.java et capitale.java mon problème dans la classe de base "exception.java" et sa classe dérivée "NombreHabitantException.java"j'ai aucune idée de codé peux voir la classe de base "exception.java" je sais pas si il va contenir le bloc try{} ou catch() je suis vraiment bloqué je sais pas quoi faire, je besoins de votre aide merci.
De ce que j'ai compris dans ton message (la traduction n'étant pas fournie) est que tu n'as pas compris ce qu'était la classe NombreHabitantException.
Il est clairement dit :
La procédure pour faire ce tour de force est un peu particulière. En effet, nous devons :
créer une classe héritant de la classe Exception : NombreHabitantException (par convention, les exceptions ont un nom se terminant par « Exception ») ;
renvoyer l'exception levée à notre classe NombreHabitantException ;
ensuite, gérer celle-ci dans notre classe NombreHabitantException.
Il est précédemment expliqué que la classe Exception existe déjà dans la librairie Java. Il te suffit donc de créer ta classe NombreHabitantException qui va hériter de Exception.
Toute classe dérivé de Exception deviens une "exception". Cela veut dire qu'elles peuvent se catcher. Pour ce qui est d'émettre une exception (throw), le paragraphe suivant la consigne l'explique très bien.
Mais si tu avais un peu continuer le cours pour essayer de comprendre, tu aurais trouver la classe NombreHabitantException ainsi que comment l'utiliser.
Un accès premium d'un mois avec le code AXEL-8RR3 C'est cadeau et c'est illimité !
Bonjour je suis au cinquième chapitre qui traite des boucles. Concernant la boucle while j'ai un problème, je veux réecrire le programme avec un int au lieu de char. Pour le premier je n'ai pas de problème. Le problème se pose au niveau où je veux obliger l'utilisateur entrer soit 0 ou 1 mais lorsque je tape autre que ces 0 et 1 un problème s'affiche. Que faire ?
Si tu parle d'une exception de type InputMismatchException lorsque tu insère autre chose qu'un int (une lettre par exemple). C'est normal. Tu demande à ton Scanner de te retourner un int via nextInt, il va donc tenter (en interne) de parser la texte en Integer. Si cela ne fonctionne pas, cela va renvoyer une exception.
Tu peux éviter cela en utilisant une try{}catch(){} mais il faut encore le voir à ce niveau du cours je pense Donc pour le moment, garde des String et utiliser "Y" ou "N" pour ta condition.
Un accès premium d'un mois avec le code AXEL-8RR3 C'est cadeau et c'est illimité !
En envoyant 0, ou 1 ou 12768 cela fonctionnera très bien. Si tu passe "je ne veux pas continuer", cela va planter.
EDIT :Via le Scanner, il ne t'est pas possible de forcer une entrée. L'utilisateur peut rentrer ce qu'il veut. C'est à toi de vérifier que l'entré est la bonne.
- Edité par AxelHuberty 18 avril 2016 à 11:40:27
Un accès premium d'un mois avec le code AXEL-8RR3 C'est cadeau et c'est illimité !
je travaille avec netbeans et j'ai téléchargé le zip de jdom, ensuite je l'ai importé dans mon projet mais netbeans me dit que les package que j'essaye d'importer n'existe pas quelqu'un peut m'aider ?
Merci d'avance.
PS: Problème résolu j'avais introduit le mauvais jar :s
j'avais mal pigé le contenu maintenant je compris, qu'il y a une exception dans la librairie java que la classe NombreHabitantException et le dérivée de l' exception. Merci vraiment pour la compréhension.
Bonjour à tous, j'aimerai savoir lorsqu'on utilise un switch,est-ce-qu'on doit intialiser notre variable. Je constate que lorsque je ne le fait pas on m'affiche une croix sur la ligne, je ne comprend pas.
Mamie Léonie (identité commerciale utilisée par un jeune homme moustachu) fabrique et expédie des quatre-quarts qu'elle vend via un site internet. Pour affranchir correctement les colis, elle doit calculer le poids des colis qui dépend du nombre de quatre-quarts qu'ils contiennent. Chaque quatre-quart pèse 250 grammes. Mamie Léonie vous demande d'écrire un programme pour l'aider. Ce programme demande à l'utilisatrice (Mamie Léonie) le nombre de quatre-quarts et affiche comme résultat le poid du paquet exprimé en kilos
Par exemple, si trois quatre-quarts sont envoyés, le poids calculé et affiché est de 0,750 car le poids du colis est de 3 fois 250 grammes ce qui fait 0,750 kilos (750 grammes).
import java.util.Scanner;
public class Colis{
public static void main(String[] args) {
double poids;
System.out.println("Entrez le nombre de quatre-quarts :");
Scanner sc = new Scanner(System.in);
int nombre = sc.nextInt();
poids = 250*nombre*(0.001);
System.out.println("La valeur du poids est : "+poids+" Kilos.");
}
}
J'aimerai savoir s'il y a une autre manière d'écrire poids = 250*nombre*(0.001); pour passer en kilogrammes.
Il est en effet obligatoire d'initialiser une variable static avant de pouvoir lire le contenu (que ce soit pour un calcul, un switch, une condition, ...), ce qui est normal car non initialisé la valeur ne peut pas être assurée, tu ne sais pas ce que va contenir le bloc mémoire alloué à cette variable. Si le compilateur trouve une possibilité qu'une variable ne soit pas initialisé, il ne compilera pas. (Donc si tu initialises dans un if, tu dois le faire dans le else, si cela ne compilera pas non plus).
Cela reste logique, qu'elle serait la valeur de "choix" dans ton code au moment du switch ? Et bien le compilateur remarque le problème et te le fait remarquer.
Un accès premium d'un mois avec le code AXEL-8RR3 C'est cadeau et c'est illimité !
Merci et en ce qui concerne le problème du switch. Est-ce-que pour l'utiliser on doit intialiser notre variable.
Comme je l'ai dit, oui l'initialisation est obligatoire, le compilateur te le dit d'ailleurs ... "The local variable choix may not have been initialized". C'est assez clair comme remarque.
Qu'elle serait la valeur d'une variable non initialisée ?
Un accès premium d'un mois avec le code AXEL-8RR3 C'est cadeau et c'est illimité !
je suis en train de faire le 1er T.P celui ou on enregistre la liste de vehicule dans le fichier, j'ai reussi, non sans mal, a implémenter les differentes classes pour obtenir la liste des vehicules, seulement je n'arrive pas a l'enregistrer dans 1 fichier,
j'ai repris l'exemple du cours mais je n'arrive pas a l'adapter pour mon cas;
voici ma classe Garage:
package com.garage;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class Garage{
List<Vehicule> vehicules = new ArrayList<Vehicule>();
public String listeVoitures;
FileOutputStream ride = null;
public void addVoiture(Vehicule voit){
this.vehicules.add(voit);
}
public String liste(){
for(int i = 0; i < this.vehicules.size(); i++){
this.listeVoitures += this.vehicules.toString() + "\n";
}
return listeVoitures;
}
public Garage(){
ObjectInputStream ois;
ObjectOutputStream oos;
try {
oos = new ObjectOutputStream(
new BufferedOutputStream(
new FileOutputStream(
new File("garage.txt"))));
oos.writeObject(this.listeVoitures); // C'EST ICI QUE JE COINCE RIEN NE S'ENREGISTRE !
//Ne pas oublier de fermer le flux !
oos.close();
//On récupère maintenant les données !
ois = new ObjectInputStream(
new BufferedInputStream(
new FileInputStream(
new File("garage.txt"))));
System.out.println("Garage :");
System.out.println("*************************\n");
// System.out.println(((listeVoitures)ois.readObject()).toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public String toString(){
String str = liste();
return str;
}
}
autre probleme mes voitures s'affichent avec un crochet en debut "[" et en fin "]"
surement parce que je parcours une boucle, comment y remedier
MERCI
[+ Voiture RENO : Lagouna, Moteur : MOTEUR ESSENCE 150 Chevaux (23123.0€) [GPS (113.5€), Siege chauffant (562.9€), Vitre electrique (212.35€)] d'une valeur totale de 28455.5 €
, + Voiture PIGEOT : A300B, Moteur : MOTEUR ELECTRIQUE 1500 W (28457.0€) [Climatisation (347.3€), Barre de toit (29.9€), Siege chauffant (562.9€)] d'une valeur totale de 34097.6 €
, + Voiture TROEN : D4, Moteur : MOTEUR DIESEL 200 Hdi (25147.0€) [Barre de toit (29.9€), Climatisation (347.3€), GPS (113.5€)] d'une valeur totale de 28091.2 €
, + Voiture RENO : Lagouna, Moteur : MOTEUR DIESEL 500 Hdi (23123.0€) null d'une valeur totale de 23123.0 €
, + Voiture PIGEOT : A300B, Moteur : MOTEUR HYBRIDE ESSENCE/Electrique (28457.0€) [Vitre electrique (212.35€), Barre de toit (29.9€)] d'une valeur totale de 29910.5 €
, + Voiture TROEN : D4, Moteur : MOTEUR ELECTRIQUE 100 KW (25147.0€) [Siege chauffant (562.9€), Barre de toit (29.9€), Climatisation (347.3€), GPS (113.5€), Vitre electrique (212.35€)] d'une valeur totale de 32742.7 €
Bonsoir j'ai un problème concernant le premier tp qui traite de la conversion de la température en degré celsius en degré fahrenheit.
Je n'arrive pas vraiment à m'en sortir; je suis bloqué au niveau où il faut recommencer le problème au cas où l'utilisateur accepte de convertir une autre temperaure.
Bonsoir, concernant le premier tp de conversion de température de degré celsius en degré fahrenheit et vice versa j'ai fini mais j'ai un problème pour repéter les instructions c'est-à-dire demander à l' utilisateur s'il veut convertir une autre température.
J'ai aussi un problème au niveau de l'exécution du programme. Lorsque j'entre une température en celsius et lorsque je veux son résultat en fanrenheit sa ne marche pas correctement. A l'exemple de 15.0 C correspond à : 47.0 F. Or le cours me montre 59.0 F.
Je te conseille d'éviter de spammer le forum, tu peux modifier tes messages pour ajouter du contenu si besoin, 4 messages de suite c'est beaucoup...
Aussi, au lieu de faire des copies d'écran qui ne sont pas des plus pratique pour lire, utilise la balise code </> pour copier ton code.
Pour ton morceau de code, il va incrémenter nombre 100 fois via deux boucles (je ne sais pas d'où sort ce code, c'est original pour incrémenter ^^). C'est une simple boucle while avec une boucle for dans le bloc d'instruction. Que veux tu savoir de plus ?
Pour ce qui est de redemander une conversion, il te suffit de boucler le bloc d'instruction avec la conversion si l'utilisateur te réponds oui.
Je ne connais pas la formule par coeur et je n'ai pas le temps donc j'espère que quelqu'un va vérifier ça. Tu peux déjà faire la conversion via Google pour voir qui a raison, toi ou le cours
Un accès premium d'un mois avec le code AXEL-8RR3 C'est cadeau et c'est illimité !
Bonsoir, concernant le premier tp de conversion de température de degré celsius en degré fahrenheit et vice versa j'ai fini mais j'ai un problème pour repéter les instructions c'est-à-dire demander à l' utilisateur s'il veut convertir une autre température.
J'ai aussi un problème au niveau de l'exécution du programme. Lorsque j'entre une température en celsius et lorsque je veux son résultat en fanrenheit sa ne marche pas correctement. A l'exemple de 15.0 C correspond à : 47.0 F. Or le cours me montre 59.0 F.
Si tu es toujours bloqué, quelques trucs à revoir:
Sortir du switch-case, ton affichage du menu et ta lecture de clavier (tu as du voir que tu as une boucle while infinie vu que dans la boucle, tu ne modifies pas la valeur de reponse ; ou alors remplacer le while par un if)
Tu fais tes calculs sur des entiers, donc 9/5 te renvoie 1 (et non 1.8 comme le ferais l'opération sur les flottants 9.0/5.0), du coup (1*15)+32=47 au lieu de (1.8*15)+32=57 (l'opération doit être (9.0/5.0) * celcius + 32.0 ; de même pour l'opération inverse : (fahrenheit -32.0)*5.0/9.0
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
#RTFM #AskGoogle and Have a nice code Day