Bounjour,

je cherche à afficher un flux de données en streaming venus d'une application externe qui joue le role (client)d'un listener qui écoute un serveur et affiche ce qu'il a reçu dans jtextarea

j'ai essaie d'utliser swingworker pour afficher le flux car mon application qui reçoit reste en cours d'éxécution le long de la reception mais j'ai des erreurs que j'ai pas pu résoudre de plus.. étant débutante j'arrive pas à bien gérer ça .
Pouvez vous m'aider SVP
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
import javax.swing.JTextArea;
import javax.swing.SwingWorker;
 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
/**
 *
 * @author Samya
 */
public class Welcome extends javax.swing.JFrame {
 
    /**
     * Creates new form Welcome
     */
 
 
    public Welcome() {
        initComponents();
 
    }
 
 
 class ListenWork extends SwingWorker< String , String> {
 
    public ListenWork() throws IOException{
        String array[]= new String[5];
        array[0] = User.getText();
        array[1]= Pass.getText();
        array[2]= Port.getText();
        array[3] = Ip.getText();
       //array[5]= File.getText();
        String[] commande = {"receiver.exe",array[2],array[3],array[0],array[1]};
            ProcessBuilder p = new ProcessBuilder(commande);
            final Process pb = p.start();
 
    }
 
 
    protected void doInBackground(Process pb) throws IOException{
        while(true){
	    BufferedReader reader = new BufferedReader(new InputStreamReader(pb.getInputStream()));
		String messageFromDatagram ="";
                messageFromDatagram = reader.readLine();
 
            publish(messageFromDatagram);
        }
    }
 
        @Override
    protected void process(List<String> messages){
        for(String message : messages){
            jTextArea1.append(message);
        }
    }
    }
 
 
    private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                              
 
    }                                             
 
    private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                               
        // TODO add your handling code here:
    }                                              
 
 
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /*
         * Set the Nimbus look and feel
         */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /*
         * If Nimbus (introduced in Java SE 6) is not available, stay with the
         * default look and feel. For details see
         * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Welcome.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Welcome.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Welcome.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Welcome.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>
 
        /*
         * Create and display the form
         */
                Welcome demo = new Welcome();
                ListenWork swingWorker = demo.new ListenWork;
                swingWorker.execute();
 
        java.awt.EventQueue.invokeLater(new Runnable() {
 
            public void run() {
                new Welcome().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JTextField Ip;
    private javax.swing.JTextField Pass;
    private javax.swing.JTextField Port;
    private javax.swing.JTextField User;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.ButtonGroup buttonGroup2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JRadioButton jRadioButton1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextArea jTextArea2;
    private javax.swing.JToggleButton jToggleButton1;
    private javax.swing.JToggleButton jToggleButton2;
    // End of variables declaration                   
}