Mon Probleme JTextField
el_kader
-
tarek_dotzero Messages postés 817 Date d'inscription Statut Membre Dernière intervention -
tarek_dotzero Messages postés 817 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis tristre parcque le code ne done mois toujour ce que je veux "oh my head"
please aide mois ;
le tableau tabi
prend les valeur qui sont dans le jtextfield
1 clic sur ok dans la fenetre oui le tableau prend une valeur ca march
mais dans le 2 eme clic sur le button ok la premire case s'ecrase porquois ?
porquois ?porquois ?porquois ?porquois ?
voici le code :
je suis tristre parcque le code ne done mois toujour ce que je veux "oh my head"
please aide mois ;
le tableau tabi
prend les valeur qui sont dans le jtextfield
1 clic sur ok dans la fenetre oui le tableau prend une valeur ca march
mais dans le 2 eme clic sur le button ok la premire case s'ecrase porquois ?
porquois ?porquois ?porquois ?porquois ?
voici le code :
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Arrays; import java.util.Scanner; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; public class simpl { private static int h=30; private static int a=500; private static int s=0; private static int f=-1; private static int [][] temp=new int [100][100]; public static void main(String args[]) { JFrame frame = new JFrame(); JPanel panel =new JPanel(); panel.setLayout(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton b=new JButton("ok"); b.setBounds(430, 150, 70, 40); frame.add(panel); panel.add(b); //le nombrede contraintes JTextField txt1 =new JTextField(); txt1.setBounds(100,h, 90,40); panel.add(txt1); //le nombre des variables JTextField txt2 =new JTextField(); txt2.setBounds(100,h+50, 90,40); panel.add(txt2); JLabel label3 =new JLabel("variables "); panel.add(label3); label3.setBounds(250-92-140, h, 170, 40); JLabel label4 =new JLabel(" contraintes"); panel.add(label4); label4.setBounds(250-92-140, h+50, 170, 40); JTextField c1 =new JTextField(); c1.setBounds(a+250,h, 90,40); panel.add(c1); frame.add(panel); // frame.add(panel); b.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent arg0) { int nbvar=Integer.parseInt(txt1.getText()); int nbc=Integer.parseInt(txt2.getText()); int[] tabi =new int[nbc+1]; f=f+1; int k=Integer.parseInt(c1.getText()); tabi[f]=k; System.out.println(Arrays.toString(tabi)); if(f==nbvar){ f=-1; }} }); frame.setSize(900, 350); frame.setVisible(true); } }
1 réponse
Bonjour,
tabi est déclaré à l'intérieur de la méthode actionPerformed(...), c'est à dire à chaque fois que vous cliquez, le tableau est créé, la valeur et ajoutée au tableau et à al fin de la méthode le tableau est supprimé. Au prochain click, un autre nouveau tableau vide est créé, la valeur est y ajoutée et à la fin de la méthode il est à nouveau supprimé.
La solution est de déclaré le tableau comme attribut de la classe au même niveau que s, f et temp. Malgré que tous ces attributs sont des champs "static" chose qui est concetuellement incorrecte mais cela va marcher.
tabi est déclaré à l'intérieur de la méthode actionPerformed(...), c'est à dire à chaque fois que vous cliquez, le tableau est créé, la valeur et ajoutée au tableau et à al fin de la méthode le tableau est supprimé. Au prochain click, un autre nouveau tableau vide est créé, la valeur est y ajoutée et à la fin de la méthode il est à nouveau supprimé.
La solution est de déclaré le tableau comme attribut de la classe au même niveau que s, f et temp. Malgré que tous ces attributs sont des champs "static" chose qui est concetuellement incorrecte mais cela va marcher.