itemStateChanged qui morche pas trop sur ma combo
Voila j'aurai aimé que la séléection d'un item fasse un changement imédiat sur mon applet.
de toute évidence cela ne marche plus car je n'ai plus de fonctionnement!
Code:
1 2 3 4 5 6 7
|
public MapLangue(AppletPh2 app){
private final String[] langueStrings = {"Fran\u00e7ais", "English", "Polski", "Espa\u00f1ol", "Deutsch", "Portugu\u00eAs", "Catal\u00E0","Chinese","Vi\u00EAt nam"};
Integer[] intArray = new Integer[AppletPh2.nbr_langue];
for (int i = 0; i < AppletPh2.nbr_langue; i++) { |
.....et j'en passe ..... [suite]
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
langueList = new JComboBox(intArray);
ComboBoxRenderer renderer= new ComboBoxRenderer();
renderer.setPreferredSize(new Dimension(90, 25));
langueList.setRenderer(renderer);
langueList.setMaximumRowCount(4);
langueList.setBackground(Color.WHITE);
langueList.setBounds(5,130,150,30);
langueList.addItemListener(this);
add(langueList);
}
public void itemStateChanged(ItemEvent e){
if(e.getSource() == langueList) {
applet.miseAJourLangue();
}
} |
merci
miseAJourlangue est plutot complexe
je l'uitilise pour l'applet
et dans chaque sous fenetre mise à JourLangue declenche la miseAJourLangue des autres fenetres
ça fonctionne plus --> c'est à dire que j'ai plus de MiseAjour langue dutout pour aucun truc. ça se bloque totalement
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
/**
* Interface permettant l'implémentation de plusieurs langues pour l'application AppletPh2
* Elle définit la fonction miseAJourLangue() permettant la traduction
*/
public interface Multilangue {
/**
* Fonction mettant à jour la langue utilisée par l'applet
* Elle doit traduire les items de la classe courante, et appellée la
* fonction miseAJourLangue() des sous panneaux de la classe courante
* Structure typique:
* // Mise à jour des items du panneau
* itemClasseCourante.setToolTipText(monAppletPh2.getItemInfobulle(index));
* itemClasseCourante.setText(monAppletPh2.getItemName(index));
*
* // Mise à jour des items des sous panneaux
* sousPanneau1.miseAJourLangue();
* sousPanneau2.miseAJourLangue();
*/
public void miseAJourLangue();
} |
J'ai aussi la classe IndexLangue, ça fonctionne avec des fichiers .lang
Code:
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
| public class IndexLangue {
private Hashtable<String,ItemLangue> hash_items;
private String langue; // Nom de la langue utilisée
//------------------------------------------------------------------------//
/**
* Constructeur à partir d'un fichier de langue (*.lang)
* Prend l'URL de base de l'application en paramètre pour récupérer le fichier de langue
*/
public IndexLangue(String fichier, AppletPh2 app) {
ItemLangue il;
String ligne;
String []champs;
int i;
hash_items = new Hashtable<String,ItemLangue>();
try {
// Ouverture du fichier
try {
URL fileURL = getClass().getResource("/Data/Langue/"+fichier);//new java.net.URL(app.getCodeBase(), "Data/Drapeaux/"+fichier);
DataInputStream dis = new DataInputStream(fileURL.openConnection().getInputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(dis));
// Lecture du nom de la langue
//System.out.println("\tLecture du nom de langue...");
ligne = "//";
while ( ligne.startsWith("//") ) {
ligne = in.readLine();
}
this.langue = ligne;
// Lecture des itemLangue
i = 2;
while ((ligne = in.readLine()) != null) {
//System.out.println("\tLecture de la ligne " + i + " de " + fichier + "..." + ligne);
// On en tient pas compte des commentaires dans le fichier de langue
if (!ligne.startsWith("//")) {
// Découpage de la ligne pour récréer le itemLangue
champs = ligne.split(":");
il = new ItemLangue(champs[0], champs[1], champs[2]);
hash_items.put(champs[0],il);
}
i++;
}
in.close();
} catch (MalformedURLException me) {
System.err.println("Couldn't find file: " + fichier);
}
} catch (Exception e) {
System.out.println ("ERREUR: Fichier de langue incorrect: " + fichier + " invalide");
e.printStackTrace();
}
}
//------------------------------------------------------------------------//
/**
* Retourne un ItemLange d'index i
*/
public ItemLangue getItemLangue(String i) {
return (ItemLangue)this.hash_items.get(i);
}
//------------------------------------------------------------------------//
/**
* Retourne le nom de la langue
*/
public String getNomLangue() {
return this.langue;
}
} |
la fonction miseAJourLangue des sous panneaux de l'applet
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public void miseAJourLangue() {
// Mise jour des items du panneau: pas d'item sur le panneau
// Mise jour de la langue sur les sous panneaux:
this.f_graphe.miseAJourLangue();
this.f_fichier.miseAJourLangue();
this.f_choixreact.miseAJourLangue();
this.protection.miseAJourLangue();
this.p_boutons.miseAJourLangue();
this.fp.miseAJourLangue();
this.ml.miseAJourLangue();
this.pp.miseAJourLangue();
this.photo.miseAJourLangue();
this.p_logo.miseAJourLangue();
this.f_affQN.miseAJourLangue();
repaint();
} |
voila merci de votre aide:aie:
ça y est ça marche bizarrement je suis pas passé par ItemListener
ublic void actionPerformed(ActionEvent arg0) {
if(arg0.getSource() == langueList)
{ try { applet.miseAJourLangue(); }
catch(Exception ey)
{ ey.printStackTrace(); }
}
:oops: