Problema visualizzazione dati letti da RS232

di il
1 risposte

Problema visualizzazione dati letti da RS232

Dovrei visualizzare dei byte ricevuti da una porta seriale, riesco a stamparli su System.out, ma non riesco ad aggiungerli ad un jTextArea.

public static class SerialReader implements Runnable 
    {
        InputStream in;
        
        public SerialReader ( InputStream in )
        {
            this.in = in;
        }
        
        public void run ()
        {
            byte[] buffer = new byte[1024];
            int len = -1;
            try
            {
                while ( ( len = this.in.read(buffer)) > -1 )
                {
                    //Errore: non-static method Print_debug_UI() cannot be referenced from a static context
                    my.numberaddition.NumberAdditionUI.Print_debug_UI();

                    //System.out riesco a visualizzarlo
                    System.out.print(new String(buffer,0,len));
                }
            }
            catch ( IOException e )
            {
                e.printStackTrace();
            }            
        }
    }
Codice della classe my.numberaddition.NumberAdditionUI

public class NumberAdditionUI extends javax.swing.JFrame {
........
   public void Print_debug_UI() {
        jtxta_debug.append("aa11\n");
    }
........
Spero di essere stato chiaro
Grazie in anticipo

1 Risposte

  • Re: Problema visualizzazione dati letti da RS232

    Ciao,
    sarebbe più utile anche per una migliore comprensione del codice, di utilizzare una nomenclatura più idonea.
    Per esempio il tuo Print_debug_UI lo chiamerei setAppendArea
    Quello che non capisco è una cosa.
    Dove passi lo stringa o lo stream alla JTextArea?
    Devi passarglielo in qualche modo altrimenti come fa a stamparlo?

    SerialReader
    
    my.numberaddition.NumberAdditionUI.setAppendArea(new String(buffer,0,len));
    
    NumberAdditionUI
    
     public void setAppendArea(String txt) {
            jtxta_debug.append(txt+"\n");
        }
    
    Ciao.
Devi accedere o registrarti per scrivere nel forum
1 risposte