Se qui:
codice:
  public void init() {
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    initComponents();
           jButton1.addActionListener(new client());
         //  jTextArea2.addKeyListener(new invio());

                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }
Al posto di jButton1.addActionListener(new client()); ci metto un altro thread come initComponents() per aspettare la pressione del tasto connetti e quindi per far eseguire il ciclo for, va bene?
Oppure ne devo creare uno nuovo, diverso da invokeAndWait()?