Tom's Guide > Forum > Programmation > probleme java
Mot :    Pseudo :           
 

Bonjour

J'ai une application java qui tourne correctement , et je veux lancer cette application plusieurs fois. Donc j'ai créé une nouvelle fenêtre et j'ai généré 3 fois l'application .

Code :
  1. for(i=0; i<3;i++)
  2. {
  3. aaaa a1 = new aaaa(); // aaaa c'est l'ancienne appli
  4. a1.setVisible(true);
  5. }


L'application aaaa ce lance 3 fois mais le problème c'est que , quand j'exécute un objet ds une des fenêtres générée le résultât s'affiche toujours sur la dernière fenêtre générée .

Merci pour votre aide.

------------------------------ code de la route GRATUIT---> http://www.permik.net
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

rien compris....

t'aurais un screenshot ? plus de code ?

------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

J'ai créé une classe pour les thread

Code :
  1. public class thread extends Thread implements Runnable {
  2. public void run()  {
  3. aaaa a1 = new aaaa();
  4. a1.setVisible(true);
  5.   }
  6.   }


et j'ai lancé ces thread

Code :
  1. for(int i=0;i<2;i++){
  2. thread t1 = new thread();
  3. t1.start();}




La classe aaaa lance un thread clienttcp

Code :
  1. public class aaaa extends JFrame { 
  2. .....
  3. .....
  4. void jButton4_actionPerformed(ActionEvent e) {
  5.     this.jButton2.setVisible(false);
  6.     this.jButton3.setVisible(false);
  7.     this.jButton4.setVisible(false);
  8. //ici je lance le thread---------------------------------
  9. clienttcp cl= new clienttcp(  );
  10. cl.start(    );
  11. }



le thread clienttcp lance info


Code :
  1. public class clienttcp extends Thread implements Runnable {
  2. ......
  3. ......
  4.   public void run()  {
  5. .........
  6. .........
  7. info in= new info();
  8. in.inf();
  9. }





Code :
  1. public class info {
  2. ........
  3. ......
  4.     public static void inf()
  5.         {
  6. ..........
  7. ............// on calcule var1..var4 et on modifie les labels dans aaaa
  8. aaaa.jLabel4.setText(var1);
  9. aaaa.jLabel6.setText(var2);
  10. aaaa.jLabel8.setText(var3);
  11. aaaa.jLabel10.setText(var4);
  12. }
  13. }



Merci

------------------------------ code de la route GRATUIT---> http://www.permik.net
Répondre à fredixou

exemple qui marche, sans se prendre la tête avec les thread (sachant que le mécanisme de lancement d'une jframe doit utiliser swinke invoke later, préconisation de Sun) :

 
Code :
  1. public class Main {
  2.     /**
  3.      * @param args
  4.      */
  5.     public static void main(String[] args) {
  6.         Aaaa[] a = new Aaaa[3];
  7.         for (int i = 0; i < a.length; i++) {
  8.             a[i] = new Aaaa();
  9.         }
  10.     }
  11. }


Message édité par Vinz42 le 24-04-2008 à 12:11:40
------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

Code :
  1. aaaa[] a = new aaaa[3];
  2.         for (int i = 0; i < a.length; i++) {
  3.             a[i] = new aaaa();
  4.             a[i].setVisible(true);
  5.         }


Avec ce code j'ai le même problème : quand j'exécute un objet ds une des fenêtres crées le résultât s'affiche toujours sur la dernière fenêtre créée.

Je n'ai pas compris "" (sachant que le mécanisme de lancement d'une jframe doit utiliser swinke invoke later, préconisation de Sun)""


merci


Message édité par fredixou le 24-04-2008 à 12:50:02
------------------------------ code de la route GRATUIT---> http://www.permik.net
Répondre à fredixou

as-tu des variables static ?

------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42
------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

Bon, voici un exemple complet (sans le swing invoker) :
Classe Aaaa.java

Code :
  1. import java.awt.BorderLayout;
  2. import javax.swing.JPanel;
  3. import javax.swing.JFrame;
  4. import javax.swing.JButton;
  5. import javax.swing.JTextField;
  6. public class Aaaa extends JFrame {
  7.     private static final long serialVersionUID = 1L;
  8.     private JPanel jContentPane = null;
  9.     private JButton jButton = null;
  10.     private JTextField jTextField = null;
  11.     public Aaaa() {
  12.         super();
  13.         initialize();
  14.     }
  15.     private void initialize() {
  16.         this.setSize(300, 200);
  17.         this.setContentPane(getJContentPane());
  18.         this.setTitle("JFrame" );
  19.         this.setVisible(true);
  20.     }
  21.     private JPanel getJContentPane() {
  22.         if (jContentPane == null) {
  23.             jContentPane = new JPanel();
  24.             jContentPane.setLayout(new BorderLayout());
  25.             jContentPane.add(getJButton(), BorderLayout.CENTER);
  26.             jContentPane.add(getJTextField(), BorderLayout.SOUTH);
  27.         }
  28.         return jContentPane;
  29.     }
  30.     private JButton getJButton() {
  31.         if (jButton == null) {
  32.             jButton = new JButton();
  33.             jButton.setText("Pouet" );
  34.             jButton.addActionListener(new java.awt.event.ActionListener() {
  35.                 public void actionPerformed(java.awt.event.ActionEvent e) {
  36.                     jTextField.setText("il est :" + System.currentTimeMillis() +" ms." );
  37.                 }
  38.             });
  39.         }
  40.         return jButton;
  41.     }
  42.     private JTextField getJTextField() {
  43.         if (jTextField == null) {
  44.             jTextField = new JTextField();
  45.         }
  46.         return jTextField;
  47.     }
  48. }


Classe Main.java

Code :
  1. public class Main {
  2.     public static void main(String[] args) {
  3.         Aaaa[] a = new Aaaa[3];
  4.         for (int i = 0; i < a.length; i++) {
  5.             a[i] = new Aaaa();
  6.         }
  7.     }
  8. }



Aperçu :
http://img124.imageshack.us/img124/1289/trucalaconbb8.png

------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

oui j'ai des variable static dans aaaa et qui sont modifiées par des threads lancer par aaaa

------------------------------ code de la route GRATUIT---> http://www.permik.net
Répondre à fredixou

je pense que tes static font que ça a un comportement un peu merdique.

------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

Merci bien pour votre aide.

Mais dans ce cas quel est la solution??

------------------------------ code de la route GRATUIT---> http://www.permik.net
Répondre à fredixou

Solution 1 : part de ce que j'ai posté.
Solution 2 : trouve toi-même d'où vient le problème, étant donné qu'on a pas tout ton code, et qu'on va pas passé non plus tout notre temps sur ton code...

------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

Merci

------------------------------ code de la route GRATUIT---> http://www.permik.net
Répondre à fredixou
Tom's Guide > Forum > Programmation > probleme java
Aller à :

Il y a 1614 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens