Sì, quando crei una classe xyz che gestisce dei dati e genera dei risultati, invece di mandare l'output a qualsivoglia dispositivo, fai restituire ai metodi appropriati il tipo di dato che ti interessa. In altre parole, banalmente
codice:
public class Persona {
private String name, surname;
private int age;
public Persona (String name, String surname, int age) {
this.name = name;
this.surname = surname;
this.age = age;
}
public Persona() {
this("John", "Doe", 44);
}
public String getName() {
return this.name;
}
public String getSurname() {
return this.surname;
}
public int getAge() {
return this.age;
}
public void setName(String name) {
this.name = name;
}
public void setSurname(String surname) {
this.surname = surname;
}
public void setAge(int age) {
this.age = age;
}
public String toString() {
return (this.name + " "+ this.surname + " " +this.age);
}
}
come vedi in questa classe non c'è nessun output verso alcun media.
A questo punto una classe di test con output a console istanzierà un oggetto di tipo Persona e manderà a console tramite System.out.println(...) i dati di interesse, mentre una classe con JTextField, JTextArea o quale componente grafico di tuo gradimento utilizzerà i suoi metodi setText e come argomenti i giusti metodi di Persona.