import javax.swing.JToolBar;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.BorderFactory;
import java.awt.Dimension;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

void main() {
  // Récupère le panel de la proglet
  Panel panel = getPane();
  // Affiche le panneau de contrôle.
  panel.removeAll("C");

  // Mise en place d'un panneau d'écriture et de lecture
  panel.add("South"new JToolBar() {
			  {
				// Bouton d'effacement
				add(new JButton("Effacer") {
					  {
						addActionListener(new ActionListener() {
											public void actionPerformed(ActionEvent e) {
											  reader.setText("");
											  writer.setText("");
											}
										  }
										  );
					  }
					}
					);

				addSeparator();

				// Panneau pour écrire le texte à envoyer
				add(writer = new JTextField() {
					  {
						setBorder(BorderFactory.createTitledBorder("Texte à envoyer"));
						setPreferredSize(new Dimension(22070));
					  }
					}
					);

				// Bouton d'envoi
				add(new JButton("Envoyer") {
					  {
						addActionListener(new ActionListener() {
											public void actionPerformed(ActionEvent e) {
											  writeString(writer.getText());
											}
										  }
										  );
					  }
					}
					);

				addSeparator();

				// Panneau pour lire le texte reçu
				add(reader = new JTextField() {
					  {
						setBorder(BorderFactory.createTitledBorder("Texte reçu"));
						setPreferredSize(new Dimension(22070));
						setEditable(false);
					  }
					}
					);

				// Bouton de réception
				add(new JButton("Recevoir") {
					  {
						addActionListener(new ActionListener() {
											public void actionPerformed(ActionEvent e) {
											  for(int c: getChars())
												reader.setText(reader.getText() (charc);
											}
										  }
										  );
					  }
					}
					);
			  }
			}
			);

  // Mise à jour de l'affichage
  panel.revalidate();
}
JTextField reader, writer;