Grazie ancora per il tuo aiuto
Allora, ho esteso Thread piuttosto che implementare Runnable perchè in quel modo non mi riusciva, credo di esserci, però forse non sono entrato nel meccanismo teorico del Multithread.

Ti spiego cosa volevo fare e ti faccio vedere cosa ho fatto:

1) Volevo poter premere il pulsante e visualizzare in output il ping proprio come se fossimo nella shell, implementando però il multithread.

2) Ecco cosa ho fatto:
Pulsante
codice:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        pingthread obj=new pingthread(jTextArea2); 
        obj.run();
    }
Classe che implementa il multithread
codice:
public class pingthread extends Thread {

    javax.swing.JTextArea jTextField1;
    javax.swing.JTextArea jTextArea1;
    BufferedReader in;

    public pingthread(javax.swing.JTextArea a) {

        jTextArea1 = a;
        try {
            Process p = Runtime.getRuntime().exec("ping www.google.com");
            in = new BufferedReader(new InputStreamReader(p.getInputStream()));
        } catch (IOException e) {
        }
    }

    @Override
    public void run() {
        try {
            String line = in.readLine();
            jTextArea1.append(line.concat("\n"));
        } catch (IOException e) {
        }
    }
}
Il risultato è che premendo il tasto ricevo solo il primo rigo di ping, questo tutte le volte che lo premo..