|
|
|
|
Bonjour,
voila comme je l ai dis dans le titre, je n arrive pas a garder une valeur rentrer en mémoire dans une variable dans un autre fonction!
je m explique :
J ai créé une variable en "private static String maVar" puis dans une fonction j ai cette variable, j y fais rentrer une valeur, la elle la mémorise bien, je sors de cette fonction et quand je l appele dans une autre fonction elle est a "Null"!
je vous envoi mon code :
----------------------------------------------------------------------------------------------------------
package test6;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class Main extends JPanel implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private static JFrame frame = new JFrame("Notepad by Gaga");
private JPanel panel = new JPanel();
private JTextField texte = new JTextField(10);
private JButton ok = new JButton("Save");
private static String testText; // ---> cette variable !!!!
public Main(){
add(panel);
panel.add(texte);
panel.add(ok);
ok.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==ok){
testText = texte.getText();
//System.out.println(testText);
System.out.println(testText + " 1 ");
}
}
public static void main(String[] args) throws IOException {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
System.out.println(testText + " 2 ");
frame.add(new Main());
System.out.println(testText + " 3 ");
frame.pack();
/* BufferedWriter fw = new BufferedWriter(new FileWriter(
"C:\\Users\\Gautier\\Desktop\\ecrire.txt", true));
fw.write(testText + " aaa ");
fw.write("\r\n");
// ...
fw.close();*/
/*PrintWriter fw = new PrintWriter(new FileWriter("C:\\Users\\Gautier\\Desktop\\ecrire.txt", true));
fw.print(testText+":"+ "aaa");
fw.close() ;*/
System.out.println(testText + " 4 ");
File x = new File("C:\\Users\\Gautier\\Desktop\\ecrire.txt");
FileWriter fw = new FileWriter(x);
fw.write(testText + " eeeee ");
System.out.println(testText + " 5 ");
fw.close();
}
}
---------------------------------------------------------------------------------------------------------------------
Je vous remercie beaucoup pour votre aide ;)
a bientôt
Configuration: Windows Vista Firefox 3.0.5
Ton code est assez bizarre...mais bon.
public void setMaVariable(int v){
this.maVariable=v;
}
public int getMaVariable(){
return this.maVariable;
}
Par la suite quand tu veut utiliser ta variable, utilise les via le getter et le setter. Ainsi, le code sera plus clair. Enfin, je vois que tu utilise l'interfaçage graphique. L'attribut static indique que ta variable n'existe qu'en un seul exemplaire pour toutes les classes. Donc je pense que, vu que l'interfaçage utilise des threads, soit le thread n'a pas instancié la variable a temps, soit elle est instancié dans une classe, mais n'est visible que dans celle ci. C'est un peu compliqué certes, mais j'arriverai pas à décrire sa autrement. What's tiny, and yellow and very very dangerous????? A canary with the super-user password. Mouhahahaha
|