Java---> problème pour sélectionner langue
overpowed
Messages postés
116
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
j'aimerais faire un sélecteur de langue à mon programme mais je ne vois pas quelle méthode utiliser.
Voici le code:
-------------------------------------------------------------------------------------------------------------------
import java.awt.Color;
import javax.swing.JButton;
import acm.graphics.GImage;
import acm.graphics.GLabel;
import acm.graphics.GLine;
import acm.graphics.GMath;
import java.awt.GradientPaint;
import acm.graphics.GPoint;
import acm.io.IODialog;
import acm.program.*;
public class JeuPereNoel extends GraphicsProgram{
public static final int APPLICATION_WIDTH = 1366;
public static final int APPLICATION_HEIGHT = 650;
private GPoint p1;
private GPoint p2;
private GImage tele;
private GImage notgood;
private GImage good;
private GLine ligneCheminee;
private GImage sol;
private GImage tele2;
private GImage guirlande;
private GImage guirlande2;
private GImage guirlande3;
private GImage maMaison;
private GImage pnoel;
private GImage traineau;
private GImage jump;
private GImage jump2;
private GImage bulle;
private GImage regle;
private int choixLangue;
public static void main(String[] args){
new JeuPereNoel().start();
}
//public void choix (){
//switch (choixLangue) {
//case 1 :
//if (choixLangue == 2){
public GPoint evalPos( double v0, double angle0, double instantT){
double x,y;
x = v0*GMath.cosDegrees(angle0)*instantT;
y = v0*GMath.sinDegrees(angle0)*instantT-(9.81*(instantT*instantT)/2);
return new GPoint(x,y);
}
public void traceTrajectoir(double v0, double angle0){
double temps = 0.01;
GPoint p ;
do{
p = evalPos(v0, angle0, temps);
marquerPoint(p);
pause(2);
temps +=0.1;
}while(p.getY()>0);
}
public void marquerPoint(GPoint p){
double y = (400-p.getY());
tele = new GImage ("tele.png",420+p.getX(), y);
remove (bulle);
remove (tele2);
remove (jump);
add (jump2);
add(tele);
pause (10);
remove (tele);
if(tele.contains(p1) || tele.contains(p2)){
remove (tele);
good = new GImage ("bulle verygood.png",15,100);
add (good);
pause (3000);
System.exit(0);
}
else if ((tele.getX() >= getWidth()) && tele.getY() >= tele.getHeight()) {
notgood = new GImage ("bulle notgood.png",15,100);
add (notgood);
pause (2000);
remove (notgood);
IODialog clavier = getDialog();
double vitesseInitiale = clavier.readDouble("Saisir Vitesse initiale en KM/h : ");
GImage txt1 = new GImage ("fenetreVista.png",500,100);
add (txt1);
pause (1000);
remove (txt1);
double angleDeTir = clavier.readDouble("Saisir angle du lance : ");
add (txt1);
pause (1000);
remove (txt1);
remove (bulle);
traceTrajectoir(vitesseInitiale, angleDeTir);
}
//break;
}
//pour toucher la cheminee: fenetre 1 = 132 fenetre 2 = 82\\
/**
case 2 :
public GPoint evalPos( double v0, double angle0, double instantT){
double x,y;
x = v0*GMath.cosDegrees(angle0)*instantT;
y = v0*GMath.sinDegrees(angle0)*instantT-(9.81*(instantT*instantT)/2);
return new GPoint(x,y);
}
public void traceTrajectoir(double v0, double angle0){
double temps = 0.01;
GPoint p ;
do{
p = evalPos(v0, angle0, temps);
marquerPoint(p);
pause(2);
temps +=0.1;
}while(p.getY()>0);
}
public void marquerPoint(GPoint p){
double y = (400-p.getY());
tele = new GImage ("tele.png",420+p.getX(), y);
remove (bulle);
remove (tele2);
remove (jump);
add (jump2);
add(tele);
pause (10);
remove (tele);
if(tele.contains(p1) || tele.contains(p2)){
remove (tele);
good = new GImage ("bulle verygood.png",15,100);
add (good);
pause (3000);
System.exit(0);
}
else if ((tele.getX() >= getWidth()) && tele.getY() >= tele.getHeight()) {
notgood = new GImage ("bulle notgood.png",15,100);
add (notgood);
pause (2000);
remove (notgood);
IODialog clavier = getDialog();
double vitesseInitiale = clavier.readDouble("Saisir Vitesse initiale en KM/h : ");
GImage txt1 = new GImage ("fenetreVista.png",500,100);
add (txt1);
pause (1000);
remove (txt1);
double angleDeTir = clavier.readDouble("Saisir angle du lance : ");
add (txt1);
pause (1000);
remove (txt1);
remove (bulle);
traceTrajectoir(vitesseInitiale, angleDeTir);
}
break;
}
//pour toucher la cheminee: fenetre 1 = 132 fenetre 2 = 82\\
*/
public void run(){
//Choix des langues ici.\\
IODialog langue = getDialog();
choixLangue = langue.readInt("Please select your language : English = 1, French = 2");
p1 = new GPoint (880,255);
p2 = new GPoint (920,255);
ligneCheminee = new GLine (880,255,920,255);
tele2 = new GImage ("tele.png",400,455);
pnoel = new GImage ("pere noel.jpg", 50,438);
traineau = new GImage ("traineaup.png",150,410);
maMaison = new GImage ("maison pour le projet.jpg",800,235);
jump = new GImage ("jump.jpg", 400,505);
guirlande = new GImage ("guirlande.gif",0,0);
guirlande2 = new GImage ("guirlande.gif",530,0);
guirlande3 = new GImage ("guirlande.gif",1060,0);
jump2 = new GImage ("jump2.png", 395,485);
bulle = new GImage ("bulle ppnoel.png",15,100);
regle = new GImage ("Regledujeu.jpg",0,560);
sol = new GImage ("sol.jpg",0,520);
add (ligneCheminee);
add (sol);
add (regle);
add (tele2);
add (maMaison);//Cheminee 880--920--y=255\\
add (bulle);
add (pnoel);
add (traineau);
add (jump);
add (guirlande);
add (guirlande2);
add (guirlande3);
pause (2000);
IODialog clavier = getDialog();
double vitesseInitiale = clavier.readDouble("Saisir Vitesse initiale en KM/h : ");
GImage txt1 = new GImage ("fenetreVista.png",500,100);
add (txt1);
pause (1000);
remove (txt1);
double angleDeTir = clavier.readDouble("Saisir angle du lance : ");
add (txt1);
pause (1000);
remove (txt1);
remove (bulle);
traceTrajectoir(vitesseInitiale, angleDeTir);
}}
-----------------------------------------------------------------------------------------------------
c'est une option anglais francais pour l'école.
La question est quel méthode prendre pour prendre la langue choisi par l'utilisateur.
Merci d'avance.
j'aimerais faire un sélecteur de langue à mon programme mais je ne vois pas quelle méthode utiliser.
Voici le code:
-------------------------------------------------------------------------------------------------------------------
import java.awt.Color;
import javax.swing.JButton;
import acm.graphics.GImage;
import acm.graphics.GLabel;
import acm.graphics.GLine;
import acm.graphics.GMath;
import java.awt.GradientPaint;
import acm.graphics.GPoint;
import acm.io.IODialog;
import acm.program.*;
public class JeuPereNoel extends GraphicsProgram{
public static final int APPLICATION_WIDTH = 1366;
public static final int APPLICATION_HEIGHT = 650;
private GPoint p1;
private GPoint p2;
private GImage tele;
private GImage notgood;
private GImage good;
private GLine ligneCheminee;
private GImage sol;
private GImage tele2;
private GImage guirlande;
private GImage guirlande2;
private GImage guirlande3;
private GImage maMaison;
private GImage pnoel;
private GImage traineau;
private GImage jump;
private GImage jump2;
private GImage bulle;
private GImage regle;
private int choixLangue;
public static void main(String[] args){
new JeuPereNoel().start();
}
//public void choix (){
//switch (choixLangue) {
//case 1 :
//if (choixLangue == 2){
public GPoint evalPos( double v0, double angle0, double instantT){
double x,y;
x = v0*GMath.cosDegrees(angle0)*instantT;
y = v0*GMath.sinDegrees(angle0)*instantT-(9.81*(instantT*instantT)/2);
return new GPoint(x,y);
}
public void traceTrajectoir(double v0, double angle0){
double temps = 0.01;
GPoint p ;
do{
p = evalPos(v0, angle0, temps);
marquerPoint(p);
pause(2);
temps +=0.1;
}while(p.getY()>0);
}
public void marquerPoint(GPoint p){
double y = (400-p.getY());
tele = new GImage ("tele.png",420+p.getX(), y);
remove (bulle);
remove (tele2);
remove (jump);
add (jump2);
add(tele);
pause (10);
remove (tele);
if(tele.contains(p1) || tele.contains(p2)){
remove (tele);
good = new GImage ("bulle verygood.png",15,100);
add (good);
pause (3000);
System.exit(0);
}
else if ((tele.getX() >= getWidth()) && tele.getY() >= tele.getHeight()) {
notgood = new GImage ("bulle notgood.png",15,100);
add (notgood);
pause (2000);
remove (notgood);
IODialog clavier = getDialog();
double vitesseInitiale = clavier.readDouble("Saisir Vitesse initiale en KM/h : ");
GImage txt1 = new GImage ("fenetreVista.png",500,100);
add (txt1);
pause (1000);
remove (txt1);
double angleDeTir = clavier.readDouble("Saisir angle du lance : ");
add (txt1);
pause (1000);
remove (txt1);
remove (bulle);
traceTrajectoir(vitesseInitiale, angleDeTir);
}
//break;
}
//pour toucher la cheminee: fenetre 1 = 132 fenetre 2 = 82\\
/**
case 2 :
public GPoint evalPos( double v0, double angle0, double instantT){
double x,y;
x = v0*GMath.cosDegrees(angle0)*instantT;
y = v0*GMath.sinDegrees(angle0)*instantT-(9.81*(instantT*instantT)/2);
return new GPoint(x,y);
}
public void traceTrajectoir(double v0, double angle0){
double temps = 0.01;
GPoint p ;
do{
p = evalPos(v0, angle0, temps);
marquerPoint(p);
pause(2);
temps +=0.1;
}while(p.getY()>0);
}
public void marquerPoint(GPoint p){
double y = (400-p.getY());
tele = new GImage ("tele.png",420+p.getX(), y);
remove (bulle);
remove (tele2);
remove (jump);
add (jump2);
add(tele);
pause (10);
remove (tele);
if(tele.contains(p1) || tele.contains(p2)){
remove (tele);
good = new GImage ("bulle verygood.png",15,100);
add (good);
pause (3000);
System.exit(0);
}
else if ((tele.getX() >= getWidth()) && tele.getY() >= tele.getHeight()) {
notgood = new GImage ("bulle notgood.png",15,100);
add (notgood);
pause (2000);
remove (notgood);
IODialog clavier = getDialog();
double vitesseInitiale = clavier.readDouble("Saisir Vitesse initiale en KM/h : ");
GImage txt1 = new GImage ("fenetreVista.png",500,100);
add (txt1);
pause (1000);
remove (txt1);
double angleDeTir = clavier.readDouble("Saisir angle du lance : ");
add (txt1);
pause (1000);
remove (txt1);
remove (bulle);
traceTrajectoir(vitesseInitiale, angleDeTir);
}
break;
}
//pour toucher la cheminee: fenetre 1 = 132 fenetre 2 = 82\\
*/
public void run(){
//Choix des langues ici.\\
IODialog langue = getDialog();
choixLangue = langue.readInt("Please select your language : English = 1, French = 2");
p1 = new GPoint (880,255);
p2 = new GPoint (920,255);
ligneCheminee = new GLine (880,255,920,255);
tele2 = new GImage ("tele.png",400,455);
pnoel = new GImage ("pere noel.jpg", 50,438);
traineau = new GImage ("traineaup.png",150,410);
maMaison = new GImage ("maison pour le projet.jpg",800,235);
jump = new GImage ("jump.jpg", 400,505);
guirlande = new GImage ("guirlande.gif",0,0);
guirlande2 = new GImage ("guirlande.gif",530,0);
guirlande3 = new GImage ("guirlande.gif",1060,0);
jump2 = new GImage ("jump2.png", 395,485);
bulle = new GImage ("bulle ppnoel.png",15,100);
regle = new GImage ("Regledujeu.jpg",0,560);
sol = new GImage ("sol.jpg",0,520);
add (ligneCheminee);
add (sol);
add (regle);
add (tele2);
add (maMaison);//Cheminee 880--920--y=255\\
add (bulle);
add (pnoel);
add (traineau);
add (jump);
add (guirlande);
add (guirlande2);
add (guirlande3);
pause (2000);
IODialog clavier = getDialog();
double vitesseInitiale = clavier.readDouble("Saisir Vitesse initiale en KM/h : ");
GImage txt1 = new GImage ("fenetreVista.png",500,100);
add (txt1);
pause (1000);
remove (txt1);
double angleDeTir = clavier.readDouble("Saisir angle du lance : ");
add (txt1);
pause (1000);
remove (txt1);
remove (bulle);
traceTrajectoir(vitesseInitiale, angleDeTir);
}}
-----------------------------------------------------------------------------------------------------
c'est une option anglais francais pour l'école.
La question est quel méthode prendre pour prendre la langue choisi par l'utilisateur.
Merci d'avance.
3 réponses
-
Tu peux utiliser un enum pour créer tes langues...
Ici j'ai utilisé Scanner, mais tu pourrais utiliser directement ton clavier
import java.util.Scanner; public enum Langue {Francais, English, Deutsch, Espanol, Italiano}; public static void main(String args[]) { System.out.println("Langues disponibles :"); for (int i=0; i<Langue.values().length; i++) System.out.println("\t"+i+" : "+Langue.values()[i]); System.out.print("\nChoix de la langue : "); int n = new Scanner(System.in).nextInt(); Langue langue = Langue.values()[n]; System.out.println("\nLangue choisie : "+langue+"\n"); switch (langue) { case Francais : System.out.println("Salut !"); break; case English : System.out.println("Hello !"); break; case Deutsch : System.out.println("Hallo !"); break; case Espanol : System.out.println("Hola !"); break; case Italiano : System.out.println("Ciao !"); break; } } -
Dans le cas présent, il faudrait mettre une méthode dans une autre or Java ne l'accepte pas.
Tu veux dire quoi aussi par utiliser clavier? Comment l'utiliser correctement?
Merci d'avance. -
Moi j'ai utilisé Scanner(System.in).nextInt() dans mon exemple qui interagit avec la console, mais toi tu as un objet IODialog clavier donc tu devrais plutôt utiliser clavier.readInt(0,Langue.values().length-1)
Par contre je ne vois pas quel est ton problème de méthode dans une méthode ?