Secondo me ti mancano, oppure non li hai mostrati, dei metodi in Partita attraverso cui si possa risalire allo stato della partita in ogni momento. Userai questi valori ritornati (da dei metodi getter, o come valore di ritorno da metodi di azione) per visualizzare a video, tramite la GUI, lo stato della partita.

Questi getter ovvimente possono anche stare in classi annidate in Partita tipo:
partita.getGiocatore(1).getPunteggio()

In caso di una partita a carte, il gioco avanzerà solo quando comanderai tu a Partita di avanzare, quindi conosci i momenti in cui dovrai andare a richiamare i vari getter per rinfrescare la GUI.

Nel caso di un gioco in cui la partita avanzi da sola senza un tuo input allora dovresti prevedere un meccanismo di callback della Partita, in modo che la Partita possa segnalare ai suoi "osservatori" che qualcosa è cambiato.

Nulla ti vieta comunque di prevedere un sistema di callback anche per la tua partita di carte. Sostanzialmente passeresti a Partita una classe (che implementa una interfaccia) con tanti metodi (oppure anche solo uno con diversi argomenti) a seconda di quello che vuoi essere notificato (e.g. punteggioCambiato(), partitaVinta(), ...) Quando si verificano questi eventi, Partita chiamerà quei metodi sull'interfaccia, notificando così chi ha implementato e passato quell'interfaccia a Partita.