Borrado

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Hagalo por usted mismo

Como lo has dicho la red es muy grande existen diversos libros y manuales sólo es cuestion DE LEER

Has intentado guardar la

Has intentado guardar la información dibujada y repintarlo cuando el usuario maximize la pantalla?

Ejemplo, si el usuario dibuja una linea de x.y=0,0 a x1,y1=100,200, guardar esa información en una lista y cuando maximize la aplicación recorrer la lista y volver a pintar lo ya pintado.

class Linea {
  private final Point x1y1;
  private final Point x2y2;

   public Linea( int x1, int y1, int x2, int y2 ) {
       x1y1 = new Point( x1, y1 );
       x2y2 = new Point( x2,y2 );
    }
}
.....
// en mouse dragged o uno de esos

lineas.add( new Linea( x1, y1, x2, y2 ) );

// en repaint :

for( Linea linea : lineas ) {
    g.drawLine( linea.x1, y1  etc. etc

No veo algo así en el código que pones. Si no lo haces, vas a tener problemas en AWT o en Swing cuando tengas que repintar el componente.

Revisando el código. Algunas

Revisando el código.

Algunas recomendaciones que te servirán en tu código:

1.- Cuando seleccionas el color estas escribiendo el nombre en un string tipo:

String colorl = ...
...

if( elec.equals("Rojo")  ||  elec.equals("Verde" .. etc. etc )  {
   colorl = elec;
}
...

Y luego al pintar estas comparando ese valor para saber que podrás en el color a pintar.

if( colorl.equals("Rojo") {
   g.setColor( Color.red );
} else if ...

Mejor sería que al evaluarlo, pudieras directamente un objeto tipo color.

String colorl;
Color colorSeleccionado;

...
if( elec.equals("Rojo") ) {
colorSeleccionado = Colo.red;
} else if ..
...

Y luego en al pintar ya no lo seteas.

2.- Usa los if's con llave siempre, aunque sea de una sola línea, crea un buen hábito:

SI

if( elec.equals("Rojo")){
   color = Color.red;
}

No

if( elec.equals("Rojo"))
   color = Color.red;

Aunque esta recomendación es más de estilo que de eficiencia u otra cosa, como mencionas que es de tus primero programas, vale la pena mencionarlo para que no te cueste trabajo después.

Más comentarios en seguida.

Ahi te va un ejemplo:

Paint y repaint

Este ejemplo ya mantiene el estado cuando se minimiza/maximiza la app.

import java.awt.*;
import java.awt.event.*;
import java.util.List;
import java.util.ArrayList;

class Dibujito {

  public static void main( String ... args ) {

    Frame frame = new Frame("Da click en dos puntos");

    // Microbuffer para crear la linea
    final Point[] puntoAnterior = new Point[1];
    // Este es el estado de lo que se ha dibujado:
    final List<Linea> lineas = new ArrayList<Linea>();

    // La recomendación es hacer una subclase de Canvas:
    // la descripción en :
    //http://download.oracle.com/javase/6/docs/api/java/awt/Canvas.html
    final Canvas canvas = new Canvas() {
        public void paint( Graphics g ) {
            g.setColor( Color.blue );
            for( Linea l : lineas ) {
                g.drawLine( l.a.x, l.a.y, l.b.x, l.b.y );
            }
        }
    };

    // Oir los clicks:
    canvas.addMouseListener( new MouseAdapter(){
      public void mouseClicked( MouseEvent e ) {
        System.out.println( e );
        if( puntoAnterior[0] == null ) {
          puntoAnterior[0] = e.getPoint();
        } else  {
          lineas.add( new Linea( puntoAnterior[0], e.getPoint() ));
          puntoAnterior[0] = null;
        }
        canvas.repaint();
      }
     
    });
    // volver a pintar
    frame.addWindowListener( new WindowAdapter() {
      public void windowDeiconified(WindowEvent e) {
        canvas.repaint();
      }
    });
    frame.add( canvas );
    frame.setVisible( true );
  }
}
class Linea {
  final Point a;
  final Point b;
  Linea( Point a, Point b) {
    this.a = a;
    this.b = b;
  }
}

Importante, el código mostrado esta lleno de "otras" malas prácticas, no tomar como referencia.

Revisalo y considera utilizar swing, que técnicamente es igual de difícil que AWT, pero tiene los beneficios de ser muchísimo más potente.

Espero que esto te ayude

Gracias por tu ayuda

Si efectivamente,a pesar de que soy nuevo con java,había pensado en almacenar todos los puntos que se iban agregando,pero debido a mi falta de experiencia con java,pensé que existía algún metodo de la clase  graphics que me facilitara solucionar este problema

De nada. Tu borraste el

De nada.

Tu borraste el contenido? No lo hagas, yo no veo nada malo en la pregunta original y puede ser que a alguién más le sirva en el futuro.