Bhè, sperando che il resto dell'applicazione non faccia robe strane (non compatibili con applet e restrizioni varie), potresti incominciare con:



codice:
import javax.swing.JPanel; 
import javax.swing.JFrame; 
import java.awt.Graphics; 
import javax.swing.*;

import java.awt.Image; 

import zodiaco.* ; 


/** Questa riga inizia la definizione di una niova classe 
*/ 
public class FinestraZodia extends JApplet { 


Zodia zodiaco = new Zodia() ; 

/** Inizializza il pannello che poi sarà inserito nella finestra. 
*/ 
public void init() { 


Segno Aries = new Ariete("Aries", "img/ariete.jpg") ; 
Segno Taurus = new Toro("Taurus", "img/toro.jpg") ; 
Segno Gemini = new Gemelli("Gemini", "img/gemelli.jpg") ; 
Segno Cancer = new Cancro("Cancer", "img/cancro.jpg") ; 
Segno Leo = new Leone("Leo", "img/leone.jpg") ; 
Segno Virgo = new Vergine("Virgo", "img/vergine.jpg") ; 
Segno Libra = new Bilancia("Libra", "img/bilancia.jpg") ; 
Segno Scorpius = new Scorpione("Scorpius", "img/scorpione.jpg") ; 
Segno Sagittarius = new Sagittario("Sagittarius", "img/sagittario.jpg") ; 
Segno Capricornus = new Capricorno("Capricornus", "img/capricorno.jpg") ; 
Segno Acquarius = new Acquario("Acquarius", "img/acquario.jpg") ; 
Segno Pesces = new Pesci("Pesces", "img/pesci.jpg") ; 


zodiaco.aggiungiSegno(Aries) ; 
zodiaco.aggiungiSegno(Taurus) ; 
zodiaco.aggiungiSegno(Gemini) ; 
zodiaco.aggiungiSegno(Cancer) ; 
zodiaco.aggiungiSegno(Leo) ; 
zodiaco.aggiungiSegno(Virgo) ; 
zodiaco.aggiungiSegno(Libra) ; 
zodiaco.aggiungiSegno(Scorpius) ; 
zodiaco.aggiungiSegno(Sagittarius) ; 
zodiaco.aggiungiSegno(Capricornus) ; 
zodiaco.aggiungiSegno(Acquarius) ; 
zodiaco.aggiungiSegno(Pesces) ; 


} 


/** Metodo ereditato dalla classe JPanel serve per aggiornare il pannello. 
*/ 
public void paint(Graphics g) { 

// stampa le informazioni di testo dello zodiaco. 
Segno[] segni = zodiaco.elencoAnimali() ; 
System.out.println("Ci sono "+segni.length+" segni:") ; 
for(int i=0 ; i<segni.length ; i++) { 
Segno a = segni[i] ; 
System.out.println(a.dimmiNome()+", "+a.categoria()+", dice "+a.faiPredizione()) ; 
} 


// dati per visualizzazione delle img nella finestra 

// il numero di ammagini per ogni riga 
int numero_colonne = 3 ; 
// larghezza forzata per le immagini 
int larghezza_immagini = 100 ; 
// altezza fortzata per le immagini 
int altezza_immagini = 100 ; 
// spazio verticale tra due immagini dove stampare il testo 
int spazio_testo = 40 ; 

// colonna corrente 
int colonna = 100 ; 
// posizione x iniziale 
int start_x = 10 ; 
// posizione attuale per stampare un'immagine 
int x=start_x, y=spazio_testo ; 

// per ogni segno faccio stampare l'img e la predizione 
for(int i=0 ; i<segni.length ; i++) { 
Segno a = segni[i] ; 

g.drawString(a.dimmiNome()+": "+a.faiPredizione(), x, y) ; 

// se non c'e' la foto, stampa un testo di default. 
Image im = a.immagine() ; 
if(im!=null) { 
g.drawImage(im, x, y, larghezza_immagini, altezza_immagini, this) ; 
} else { 
g.drawString("Foto N/A", x, y+spazio_testo) ; 
} 


// avanza di una colonna 
colonna++ ; 
// se ho ragguinto il massimo delle colonne, riparto a disegbare da sinistra 
if(colonna >= numero_colonne) { 
x = start_x ; 
y += altezza_immagini + spazio_testo ; 
colonna = 0 ; 
} else { 
// altrimenti vado verso destra 
x += 150 + larghezza_immagini ; 
} 


} 

} 


/** Metodo main che istanzia un pannello e lo inserisce in una finestra. 
*/ 
}
Saluti

---------
EDIT:
In verità a ben guardare, ci sono degli altri "problemi" nel tuo codice... ossia, c'è della stampa a terminale (System.out.println(....) nel metodo paint) che stride abbastanza con il concetto di applet (che è prettamente grafica)... la stampa in consolle di messaggi dalle applet dovrebbe essere effettuata solo per scopi di debug in fase di progettazione. Dovresti dire a chi ti ha passato il codice di rifare un po' tutto.
Saluti.