1 import java
.awt
.BorderLayout
;
2 import java
.awt
.event
.ActionEvent
;
3 import java
.awt
.event
.ActionListener
;
4 import java
.util
.ArrayList
;
6 import javax
.swing
.BoxLayout
;
7 import javax
.swing
.JButton
;
8 import javax
.swing
.JFrame
;
9 import javax
.swing
.JPanel
;
10 import javax
.swing
.JScrollPane
;
11 import javax
.swing
.JTextArea
;
12 import javax
.swing
.JTextField
;
13 import javax
.swing
.ScrollPaneConstants
;
15 import java
.io
.IOException
;
18 * Applications réparties
22 * IHM pour l'application cliente
27 public class IHM
implements ActionListener
{
29 private JTextArea entrants
;
30 private JTextField sortants
;
31 private ArrayList
<String
> sendMessages
;
32 private SocketClient socketCl
;
35 sendMessages
= new ArrayList
<String
>();
36 socketCl
= new SocketClient();
40 JFrame cadre
= new JFrame("Client de discussion");
41 JPanel panneau
= new JPanel();
42 entrants
= new JTextArea(15, 30);
43 entrants
.setLineWrap(true);
44 entrants
.setWrapStyleWord(true);
45 entrants
.setEditable(false);
46 JScrollPane zoneTexte
= new JScrollPane(entrants
);
47 zoneTexte
.setVerticalScrollBarPolicy(ScrollPaneConstants
.VERTICAL_SCROLLBAR_ALWAYS
);
48 zoneTexte
.setHorizontalScrollBarPolicy(ScrollPaneConstants
.HORIZONTAL_SCROLLBAR_NEVER
);
49 sortants
= new JTextField(24);
50 JButton boutonEnvoi
= new JButton("Envoi");
51 boutonEnvoi
.addActionListener(this);
52 panneau
.add(zoneTexte
);
53 panneau
.add(sortants
);
54 panneau
.add(boutonEnvoi
);
55 cadre
.getContentPane().add(BorderLayout
.CENTER
, panneau
);
56 cadre
.setSize(400, 310);
57 cadre
.setVisible(true);
59 panneau
.setLayout(new BoxLayout(panneau
, BoxLayout
.Y_AXIS
));
63 synchronized public void actionPerformed(ActionEvent ev
) {
64 sendMessages
.add(sortants
.getText());
66 sortants
.requestFocus();
70 synchronized public void getAndSendNextMessage() {
72 if (sendMessages
.isEmpty())
76 System
.err
.println("Exception : " + e
);
79 String mess
= (String
)sendMessages
.remove(0);
80 //System.out.println("IHM -> message a envoyer : " + mess);
81 socketCl
.sendMsg(mess
);
84 public void writeMessage() throws IOException
{
85 String mess
= socketCl
.receiveMsg();
86 //System.out.println("IHM -> message a ecrire : " + mess);
87 entrants
.append(mess
+ "\n");
94 public static void main (String
[] args
) {
95 IHM client
= new IHM();
99 client
.getAndSendNextMessage();
100 client
.writeMessage();
103 catch (IOException e
) {
104 System
.err
.println("IOException : " + e
);
112 } // fin classe SimpleClientDiscussion