Ricopio il tuo codice, indentandolo correttamente:
codice:
if (dist > D1) {
pannello.getGraphics().setColor(new Color(0, 0, 155));
} else if (dist < D1 && dist > D2) {
pannello.getGraphics().setColor(new Color(155, 0, 0));
} else {
pannello.getGraphics().setColor(new Color(0, 155, 0));
}
pannello.getGraphics().setColor(new Color(100,100,100));
pannello.getGraphics().drawRect(x-2,y-2,4,4);
Se noti... qualsiasi sia il colore che tu assegni al Graphics all'interno dei blocchi if, questo viene resettato a RGB=100, 100, 100 (un grigio), appena prima di disegnare il quadrato.
Ciao.