Plus g�n�ralement ton probleme est un probleme classique des swings pour bien le comprendre il te faut rechercher des infos sur SwingUtilities.invokelater(); je te donne un pointeur
http://manning.com/sbe/files/uts2/Chapter2html/Chapter2.htm A+ marc >Messsage du 17/03/2002 21:15 >De : <[EMAIL PROTECTED]> >A : <[EMAIL PROTECTED]> >Copie � : >Objet : Re: affichage ecran pendant actionPerformed > > > Pourriez-vous nous donner une solution pour afficher l'incrementation. > Utilisez un Thread pour que le calcul soit ind�pendant de l'affichage. > > public void aff2() { > try { > Thread th = new Thread() { > public void run() { > try { > System.out.print("IN "); > max=max+1; > for(int i=1;i<10000+max;i++) { > t.setText((""+i)) ; > } > System.out.println(" OUT "+max); > } catch(Exception thex) { > thex.printStackTrace(); > } > } > }; > th.start(); > } catch(Exception ex) { > ex.printStackTrace(); > } > } > > > > ----- Original Message ----- > From: "Mathieu Clar" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Sunday, March 17, 2002 8:54 PM > Subject: affichage ecran pendant actionPerformed > > > > Bonjour, > > Un collegue a constate que l'affichage ne bougeait plus pendant > > actionPerformed. > > Voici un exemple. > > > > //test2.java > > import java.awt.*; > > import java.awt.event.*; > > import javax.swing.* ; > > import javax.swing.event.* ; > > > > public class test2 extends JFrame{ > > JTextField t; > > int max; > > JButton b ; > > public test2() { > > super("test2"); > > getContentPane().setLayout(new FlowLayout()); > > t=new JTextField(10); > > getContentPane().add(t); > > t.setEditable(true); > > b= new JButton("OK"); > > getContentPane().add(b); > > b.addActionListener(new ActionListener() { > > public void actionPerformed(ActionEvent e) { > > aff2() ; > > } > > }); > > addWindowListener(new WindowAdapter() { > > public void windowClosing(WindowEvent e) { > > System.exit(0); > > } > > }) ; > > pack() ; > > setVisible(true); > > for(int i=1;i<1000;i++) t.setText(""+i ); > > > > } > > > > public static void main(String args[]) > > { > > new test2(); > > > > } > > public void aff2() > > { > > System.out.print("IN "); > > max=max+1; > > for(int i=1;i<10000+max;i++) { > > t.setText((""+i)) ; > > } > > System.out.println(" OUT "+max); > > } > > } > > > > Lorsque le programme demarre la valeur du JTextField est incrementee > > -> 999. > > En appuyant une premiere fois sur le bouton OK, on recommence le > > processus -> 999+1. > > L'incrementation s'effectue mais sans son affichage. > > 1000 apparait lorsque l'on sort de actionPerformed. > > Pourriez-vous nous donner une solution pour afficher l'incrementation. > > Merci d'avance. > > > > Mathieu Clar > >
