Takže předpokládám, že tam je konstruktor ve stylu
Kód:
class Prvek
{
    private Graphics moG;
 
    public Prvek(Graphics g)  // samozrejme pripadne dalsi parametry
    {
        moG = g;
    }
 
    public void prekresli()
    {
        // kreslici kod pomoci moG
    }
 
}
a prvky jsou následně tvořeny ve stylu:
Kód:
new Prvek(jPanelKresleni.getGraphics()); // plus pripadne dalsi parametry
Pokud to tak je, tak první věc, která mě napadá je, že já bych to spíš řešil takto:
Kód:
class Prvek
{
    public void prekresli(Graphics poG)
    {
        // kreslici kod pomoci poG
    }
}
public class Hlavni extends JApplet{
    private static Hlavni applet = new Hlavni();
    private Queue  fronta;
    private JPanel jPanelKresleni = new JPanel();
 
    public void paint(Graphics g)
    {
        Prvek pom=fronta.getZacatek();
        while (pom != fronta.getKonec()) {
            pom.getObrazec().prekresli(g);
            pom = pom.getDalsi();
        }
    }
}
Jde o to, že Graphics ziskaná z jPanelKresleni.getGraphics() může být jiná než ta předaná v parametru. Ale nechci Ti do toho kecat. Možná to ničemu nevadí, nevím.

ALE, hlavní chyba je ta, že máš metodu
public void paint()
kdeřto v rodičovské třídě je public void paint(Graphics g)
Takže JVM volá metodu paint(Graphics g) rodičovské třídy, ale tvojí paint() nevolá, protože to je jiná metoda. Změň to na public void paint(Graphics g) a začne to myslím fungovat.
Jenom mě napadá, že nevím jaktože se Ti něco vykreslí? Píšeš, že problém je v překreslení po překrytí jiným oknem, takže prvotní vykreslení asi proběne v pořádku. Kreslíš ještě jinde?