IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Problème au niveau de la conversion d'une valeur via UDP


Sujet :

Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 58
    Points : 22
    Points
    22
    Par défaut Problème au niveau de la conversion d'une valeur via UDP
    Bonjour,

    Je suis en train de détecter un paramétre 'temperature' via UDP mais le problème est que la valeur affichée est egal x*10^4. Voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    // simple server waiting for datagrams and extracting ans displaying string
    package udp_broad;
    import java.io.*;
    import java.util.*;
    import java.util.zip.*;
    import java.net.*;
    import java.awt.event.ActionEvent;
     
    public class UDP_broad extends Thread
    {
     
    public static void main(String args[])
    {
       try
            {
            int receivePort=999, i;  
     
            InetAddress remoteIPaddress;                                    // IP address of remote host
            int remotePort;     
            byte[] buffer = new byte[65507];                                // array to put datagrams in
            DatagramPacket dp = new DatagramPacket(buffer, buffer.length);  
     
                  DatagramSocket ds = new DatagramSocket(receivePort);
     
                  while (true)
                    {
                     ds.receive(dp);                                         // wait for next datagram
                     byte[] data = dp.getData();                             // get datagram contents
                     for  (i=93;i<=dp.getLength();i++)
                     System.out.println(" \n Temperature = " +  (((data[99]<<8)+data[100])<<4));
     
                      }
                  }
            catch (IOException se) {System.err.println("error " + se);}
            System.exit(1);                                                 // exit on failure
    }
    }
    Ce code m'afiche 240702, j'ai fait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(" \nRotor Temperature = " +  (((data[99]<<8)+data[100])<<4)/10000);
    Mais ça m'affiche juste 24. Comment faire pour afficher 24,0702 ?
    Merci d'avance

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    En Java, un int divisé par int donne un int. Pour obtenir un double, divise par 10000.0 ou 10000d.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 58
    Points : 22
    Points
    22
    Par défaut
    Merci beaucoup pour votre réponse. C'est bon ! C'est résolu. Est-ce que je peux afficher les valeurs de température dans un tableau en continu (dans une interface graphique qui se remplie avec une boucle) ?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Euh, oui, tu peux le faire. Tu voudrais les afficher dans une interface graphique, type Swing, c'est ça ? Avec une JTable par exemple ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 58
    Points : 22
    Points
    22
    Par défaut
    Oui c'est ça, en principe, mais le problème est au niveau de la valeur de température. En fait, j'ai essayé de définir une nouvelle variable x
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x=(((data[99]<<8)+data[100])<<4)/10000.0;
    pour mettre cette variable dans le tableau. De plus j'ai besoin de cette variable pour faire un test sur la plage de variation de températures. Mais il m'affiche un message d'erreur.

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je t'ai dit que pour obtenir un double, il fallait diviser par un double et, toi, tu défini un float. Pour obtenir un float, il faut diviser par un float (10000f), ou convertir par cast le double en float.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 58
    Points : 22
    Points
    22
    Par défaut
    J'ai testé ce code pour faire l'affichage de valeurs de température dans une interface graphique dans un tableau a mais il m'affiche des erreurs sachant que j'ai testé avec un code simple et j'ai réussit à créer un tableau mais ici le problème est au niveau de remplissage de tableaux et de sa taille et meme au niveau de import car il ya des fonction qui n'arrive pas à le lire malgré c le meme import que dans le programme simple qui a marché:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    79
    80
    81
    82
    83
    84
    85
    86
    package udp_temp;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
     import java.awt.event.WindowAdapter;
     import java.awt.event.WindowEvent;
     import java.awt.BorderLayout;
     import java.awt.Component;
     import java.awt.FlowLayout;
     import javax.swing.event.TableModelEvent;
     import javax.swing.event.TableModelListener;
     import javax.swing.table.DefaultTableCellRenderer;
     import javax.swing.table.TableColumn;
     import javax.swing.JButton;
     import javax.swing.JFrame;
     import javax.swing.JLabel;
     import javax.swing.JPanel;
     import javax.swing.JScrollPane;
     import javax.swing.JTable;
     import javax.swing.JTextField;
     import javax.swing.UIManager;
     
    import java.io.*;
    import java.util.*;
    import java.util.zip.*;
    import java.net.*;
    import java.awt.event.ActionEvent;
    /**
     *
     * @author THV-JD
     */
    public class UDP_Temp extends JFrame{
      public UDP_Temp(){
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("JTable");
        this.setSize(300, 120);
        String  title[] = {"t", "Age", "Taille"};
      }
        //Les données du tableau
     
        public static void main(String[] args) {
            // TODO code application logic here
             try
            {
     
            int receivePort=999, i;  
     
            System.out.println("UDP sevrer on IP address " + InetAddress.getLocalHost().getHostAddress() + " port " + receivePort );
            InetAddress remoteIPaddress;                                    // IP address of remote host
            int remotePort;     
            float x;
     
     
            byte[] buffer = new byte[65507];                                // array to put datagrams in
            DatagramPacket dp = new DatagramPacket(buffer, buffer.length);  // create packet for datagrams
     
                  DatagramSocket ds = new DatagramSocket(receivePort);
                  while (true)
                    {
                     ds.receive(dp);                                         // wait for next datagram
                     byte[] data = dp.getData();                             // get datagram contents
     
                     for  (i=93;i<=dp.getLength();i++)
                     System.out.print(" " + ((data[i])));
                     crc.update(data);
                     x=(((data[99]<<8)+data[100])<<4)/10000f;
                     System.out.println(" \n Temperature = " +  (((data[99]<<8)+data[100])<<4)/10000.0);//
                     System.out.println(x);
     
                      UDP_Temp fen = new  UDP_Temp();
                         JTable tableau = new JTable(data, title);
        //Nous ajoutons notre tableau à notre contentPane dans un scroll
        //Sinon les titres des colonnes ne s'afficheront pas !
                    this.getContentPane().add(new JScrollPane(tableau));
     
                    fen.setVisible(true);
                    }
                  }
            catch (IOException se) {System.err.println("error " + se);}
            System.exit(1);                                                 // exit on failure
    }
    }

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par ingws Voir le message
    J'ai testé ce code pour faire l'affichage de valeurs de température dans une interface graphique dans un tableau a mais il m'affiche des erreurs
    Et l'erreur est ?...

  9. #9
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 58
    Points : 22
    Points
    22
    Par défaut
    au niveau de cet ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     JTable tableau = new JTable(data, title);
    no suitable constructor for Jtable(byte,string)
    lorsque j'ai essayé avec cet ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     JTable tableau = new JTable(x)
    ;
    no suitable constructor for Jtable(float)

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    data est un tableau a 1 dimension, x est un float et une table n'a pas de titre. Donc oui, aucun des constructeurs que tu recherche n'existe ni n'a même de sens.

    Regarde ici pour la liste des constructeurs de JTable:

    http://docs.oracle.com/javase/7/docs...ng/JTable.html

    mais ca na pas de sens de faire une table pour afficher une seule valeur...

  11. #11
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Oui, créé une seule table comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DefaultTableModel model = new DefaultTableModel(new String[]{"Data"},0);
    JTable table = new JTable(model);
    Ensuite, dans ta boucle, tu peux ajouter une nouvelle ligne avec ta donnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    model.addRow(new Object[]{x});
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  12. #12
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 58
    Points : 22
    Points
    22
    Par défaut
    il m'affiche un message d'errer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DefaultTableModel model = new DefaultTableModel(new String[]{"Data"},0);
    cannot find symbol DefaultTableModel

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ben tu fais ton import...

  14. #14
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 58
    Points : 22
    Points
    22
    Par défaut
    J'ai tous les import en principe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.FlowLayout;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;
    import javax.swing.table.DefaultTableCellRenderer;
    import javax.swing.table.TableColumn;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTable;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextField;
    import javax.swing.UIManager;

  15. #15
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Bah non il manque justement javax.swing.table.DefaultTableModel. Si tu es sous Eclipse, CTRL-SHIFT-O !
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  16. #16
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 58
    Points : 22
    Points
    22
    Par défaut
    svp un autre question . je veux ajouter a part la valeur de température un autre variable temps t dans le taleau:
    Pour chaque valeur de température t=t+1; donc dans le boucle on a:
    donc pour le remplisage de tableu j'ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    model.addColumn(new Object[]{t});
    Est ce que ce juste

  17. #17
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Bah, tu crées ta JTable avec deux colonnes (regarde la javadoc !) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DefaultTableModel model = new DefaultTableModel(new String[]{"Temps", "Température"},0);
    JTable table = new JTable(model);
    Et ajoute chaque ligne avec les deux données :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    model.addRow(new Object[]{ t, x });
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  18. #18
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 58
    Points : 22
    Points
    22
    Par défaut
    J'ai fait comme vous m'avez dis normalemnt
    mais j'ai un prblème au niveau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                model.addRow(new Object[]{ t, x });
                     this.getContentPane().add(new JScrollPane(table));
    j'ai le mis dans void main l'errue est :
    Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: model.addRow
    at udp_temp.UDP_Temp.main(UDP_Temp.java:93)
    Java Result: 1
    connnot find symbol

  19. #19
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ce n'est absolument pas normal d'avoir model.addRow(new Object[]{ t, x }); avant this.getContentPane().add(new JScrollPane(table));.


    L'erreur importante c'est [c]cannot find symbol[c], mais surtout la fin, avec le nom du symboe. Je pense que c'est x ou t, qui ne sont pas à protée. Quand tu as une erreur "Uncompilable source code - Erroneous sym type": c'est que tu essayes d'exécuter une classe qui n'est pas compilable. Les erreurs sont visibles dans l'éditeur (survole les icônes rouges, pour voir le message d'erreur, ou dans la vue Problèmes d'Eclipse.). C'est ç,a les messages d'erreur qui nous intéressent.

    Sinon, il faut afficher d'abord la JTable (la créer, la mettre dans la fenêtre, afficher la fenêtre), et ensuite faire la boucle de lecture UDP, et dans le bloc de la boucle, là où tu récupères la valeur de x et que t est incrémenté, ajouter les données dans la JTable.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  20. #20
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 58
    Points : 22
    Points
    22
    Par défaut
    J'ai essayé avec ce code mais il a fait la création de plusieurs tableau vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package udp_temp;
    //Import Interface Graphique
    import javax.swing.ImageIcon;
    import javax.swing.JOptionPane;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.FlowLayout;
    import java.awt.Dialog;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;
    import javax.swing.table.DefaultTableCellRenderer;
    import javax.swing.table.TableColumn;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTable;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextField;
    import javax.swing.UIManager;
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.table.AbstractTableModel;
    import javax.swing.table.*;
    import javax.swing.table.DefaultTableModel;
    //Import UDP Connexion
    import java.io.*;
    import java.util.*;
    import java.util.zip.*;
    import java.net.*;
    import java.awt.event.ActionEvent;
     
    public class UDP_Temp extends JFrame{
        public UDP_Temp(){
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("JTable");
     
        String  title[] = {"Rotor Temerature"};
                                                                 // exit on failure
      }
         public static void main(String[] args) {
             try
            {
                    DefaultTableModel model = new DefaultTableModel(new String[]{"Time(s)", "Temperature(°C)"},0);
     
                    JTable table = new JTable(model);
        table.setModel(model);
            // get machine IP address - two methods
            int receivePort=999, i;  
            InetAddress remoteIPaddress;                                    // IP address of remote host
            int remotePort;     
            float x;
            float t;
            t=0;
            // port on remote host to send frames too
            byte[] buffer = new byte[65507];                                // array to put datagrams in
            DatagramPacket dp = new DatagramPacket(buffer, buffer.length);  // create packet for datagrams
                  // open DatagramSocket to receive and a DatagramePacket to hold the datagrams
            DatagramSocket ds = new DatagramSocket(receivePort);
                  // loop forever reading datagrams from the DatagramSocket
            while (true)
                 {
                   ds.receive(dp);                                         // wait for next datagram
                   byte[] data = dp.getData();                             // get datagram contents
                  for  (i=93;i<=dp.getLength();i++)
                     System.out.print(" " + ((data[i])));
                     x=(((data[99]<<8)+data[100])<<4)/10000f;
                     UDP_Temp fen = new UDP_Temp();
     
                     t=t+1;
                     System.out.println(t);
     
                     //this.getContentPane().add(new JScrollPane(table));
                     model.addRow(new Object[]{ t, x });
                     fen.setVisible(true);
                     for  (i=0;i<dp.getLength();i++)
                     if(data[i]<32) data[i]='*';
                     String s = new String(data, 0, 93);         // create a string from the data
                     System.out.println(" UDP data '" + s + "'\n");
     
                    }
                  }
            catch (IOException se) {System.err.println("error " + se);}
            System.exit(1); 
    }
    }
    et lorsque j'ai jouté cette ligne
    this.getContentPane().add(new JScrollPane(table));
    il maffiche msg erreur
    non static varaible

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [TP] Problème avec mon programme de conversion
    Par Panzer95 dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 28/05/2006, 18h36
  2. Probleme au niveau de la connexion de tomcat avec oracle8i
    Par hamska2 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 08/05/2006, 00h53
  3. [JMF] Problème au niveau de RTP
    Par Alienx dans le forum Multimédia
    Réponses: 2
    Dernier message: 05/03/2006, 15h50
  4. [Thread] petit problème au niveau du reveil d'un thread
    Par sagitarium dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 13/01/2006, 11h35
  5. PROBLEME haut niveau BACKUP
    Par Dev_Michael dans le forum Administration
    Réponses: 7
    Dernier message: 10/03/2005, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo