Probleme Exectution Java :help:

Résolu/Fermé
SoGeek Messages postés 183 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 15 janvier 2012 - 18 déc. 2009 à 17:58
SoGeek Messages postés 183 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 15 janvier 2012 - 19 déc. 2009 à 11:16
Bonsoir,
Je vous présente mon problème,
Donc une fois éclipse lancé avec le SDK 6 update 17 etc.
Je fais New --> Java Projet je le nomme, puis clique droit sur ce dernier et fait new --> Class que je nomme bien évidement puis je commence à programmer une fois arrivé à un bon bout de code :

import javax.swing.* ;
class MaFenetre extends JFrame
{ public MaFenetre () // constructeur
{ setTitle ("Ma premiere fenetre") ;
setSize (300, 150) ;
}
}
public class Premfen2
{ public static void main (String args[])
{ JFrame fen = new MaFenetre() ;
fen.setVisible (true) ;
while (true) // fin sur longueur titre nulle
{ System.out.print ("nouvelle largeur : ") ;
int larg = Clavier.lireInt() ;
System.out.print ("nouvelle hauteur : ") ;
int haut = Clavier.lireInt() ;
System.out.print ("nouveau titre : (vide pour finir) ");
String tit = Clavier.lireString() ;
if (tit.length() == 0) break ;
fen.setSize (larg, haut) ;
fen.setTitle(tit) ;
}
}
}

et lorque je clique sur le petit bouton vert pour l'executer une erreur s'affiche dans la console :

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Clavier cannot be resolved
Clavier cannot be resolved
Clavier cannot be resolved

at Premfen2.main(Premfen2.java:14)

ou alors il y aurai t il une alternative à Clavier.class ?

(l'equivalent en batch :
@echo off
echo Bonjour comment t'appeles tu ?
set p = Blabla
echo Oh ! Vous etes %p%)

en gros un équivalent de la commande Set mais en Java :( ou une réparation de ce bug ahah :)
Bonne soirée à tous
et merci d'avance !
SoGeek.
A voir également:

5 réponses

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
18 déc. 2009 à 21:27
Je ne sais pas où tu as trouvé cette classe Clavier, nous les profs nous l'avaient passé il y a quelques années car c'était plus facile pour faire des inputs clavier en mode console.

De nos jours, Java possède désormais un chouette petit scanner qui te permet de faire ça sans la classe Clavier et que je te conseille d'utiliser car dans Eclipse sinon pour utiliser la classe Clavier il faut ajouter un dossier de Classes au Build Path dans les propriétés du projet.

Donc pour remplacer la classe clavier tu met cette ligne avant ton "static void main" :
public static java.util.Scanner sc = new java.util.Scanner(System.in);

Puis après dans ton main pour faire un lecture tu peux faire comme suite :
int chiffre = sc.nextInt();
String texte = sc.next();
// ...


Bonne chance, normalement ça devrait résoudre tes problèmes avec la classe Clavier. Sinon tu peux quand même utiliser la classe Clavier mais alors je te conseille de compiler à la main ou avec un programme plus simple comme jGRASP et de mettre ton fichier Clavier.class dans le même dossier que tes sources Java (et où sortiront tes binaires .class).
0
SilverTux Messages postés 4 Date d'inscription vendredi 18 décembre 2009 Statut Membre Dernière intervention 18 décembre 2009 2
18 déc. 2009 à 21:30
Elle est ou ta Class clavier ?
si tu l'utilise il faut que tu l'aille deja ..

Sinon Java fournit des objets de types Scanner .
pour les utiliser il faut importer java.util.Scanner;

c.à.d. il faut ajouter import java.util.Scanner; au debut de chaque fichier dans lequel tu veux utiliser la lecture a partir d'un clavier .

apres il faut declarer et instancier une variable de ce type ..

Scanner clavier = new Scanner(System.in);

apres par exemple :

int i = clavier.nextInt();
double d = clavier.nextDouble();
long l = clavier.nextLong();
byte b = clavier.nextByte();




0
SilverTux Messages postés 4 Date d'inscription vendredi 18 décembre 2009 Statut Membre Dernière intervention 18 décembre 2009 2
18 déc. 2009 à 21:33
Si ca t'interesse voila le code d'une classe Clavier :


import java.io.* ;

/**
*Cette classe implante des saisies au clavier par lecture d'une ligne.
*/
public class Clavier {

private static final BufferedReader in =
new BufferedReader (new InputStreamReader (System.in)) ;

/**
* Affiche le message et retourne un int lu au clavier.
*/
public static int saisirEntier (String mess){
while(true){
try {return Integer.parseInt (saisirLigne ( mess)) ;}
catch (NumberFormatException e) {mess = "Recommencez : " ;}
}
}

/**
* Affiche le message et retourne un double lu au clavier. <br>
* Accepte une virgule comme separateur entre parties entiere et decimales.
*/
public static double saisirDouble (String mess){
while(true){
try {
return Double.valueOf(saisirLigne ( mess).replace (',', '.')).doubleValue () ;
}
catch (NumberFormatException e) {mess = "Recommencez : " ;}
}
}

/**
* Affiche le message et retourne une ligne lue au clavier.
*/
public static String saisirLigne (String mess) {
System.out.println (mess) ;
try{return in.readLine () ;}
catch (IOException e){return null;}// provisoire !!
}

/**
* Fait dormir le processus un certain nombre de millisecondes.
*/
public static void dormir (int n) {
try{Thread.sleep(n) ;}
catch (InterruptedException e) {}
}

} // Clavier
0
SoGeek Messages postés 183 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 15 janvier 2012 18
19 déc. 2009 à 11:07
Merci à tous je vais tester cela tout de suite :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SoGeek Messages postés 183 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 15 janvier 2012 18
19 déc. 2009 à 11:16
Je confirme votre technique marche super bien
Je vous remercie beaucoup pour votre aide :)
Bonne journée & Bonne vacance :)
SoGeek.
0