Uso dei colori standard

Le istruzioni grafiche viste fino ad ora disegnano figure geometriche con il colore nero. Vediamo ora come si fa a disegnare delle linee in rosso, o dei cerchi in blu, ecc.

In Java, non è possibile specificare con una sola istruzione che si vuole per esempio disegnare una linea in rosso. Java utilizza invece il concetto di colore corrente. Ogni volta che si disegna qualcosa, questo viene fatto usando il colore corrente. All'inizio, il colore corrente è nero, ma può venire cambiato. In questo modo, se si vogliono disegnare due linee in rosso e un cerchio in blu, quello che occorre fare è:

In altre parole, ogni volta che si cambia il colore corrente, tutte le successive istruzioni di disegno avverrano con il nuovo colore corrente. Per disegnare con un altro colore, occorre di nuovo cambiare il colore corrente.

L'istruzione che permette di cambiare il colore corrente si chiama setColor. I colori standard che Java mette a disposizione sono i seguenti:

Color.black Color.blue Color.cyan Color.darkGray Color.gray 
Color.green Color.lightGray Color.magenta Color.orange 
Color.pink Color.red Color.white Color.yellow 
Per disegnare le linee in rosso, occorre quindi eseguire la istruzione g.setColor(Color.red), che cambia il colore corrente in rosso, e poi disegnare le linee normalmente (usando la drawLine come al solito).

Il programma Standard.java usa tre colori standard (rosso, blu e nero) per disegnare varie figure geometriche.

/*
  Uso dei colori standard.
*/

import java.awt.*;

public class Standard extends java.applet.Applet {
  public void paint(Graphics g) {

    /* da qui in poi, disegna in rosso */
    g.setColor(Color.red);
    g.drawLine(0,0,100,100);
    g.drawLine(0,100,100,0);
    g.drawRect(0,0,100,100);

    /* da qui in poi, disegna tutto in blu */
    g.setColor(Color.blue);
    g.drawLine(100,100,200,200);
    g.drawOval(200,200,100,50);

    /* disegna in nero */
    g.setColor(Color.black);
    g.drawRect(0,200,50,50);

  }
}

Va notato che per tornare a usare il nero, occorre l'istruzione g.setColor(Color.black). In altre parole, una volta cambiato colore, per tornare a usare quello precedente occorre usare la setColor: non esiste una istruzione che dice di tornare al colore precedente senza specificare quale era. Il risultato è il seguente: