Ayuda con clase Color de java

Escriba una clase PoligonoColoreado se debe añadir un atributo color (de la clase Color del paquete java.awt), se deben agregar métodos para cambiar y obtener el color.

Escriba una aplicación en la que:

a) Cree un PoligonoColoreado de cuatro vértices que serán (0,0), (2,0), (2,2), (0,2) y de color rojo.

d) Cambie el color del PoligonoColoreado a azul.

¿Cómo crearia el poligonocoloreado de color rojo y como lo cambiaria a azul?

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.
Imagen de julgo

tu poligonocoloreado

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 *
 * @author j
 */

public class dibujo extends JFrame implements ActionListener {
   JPanel jp;
    JButton jb;
   
 public dibujo(){
   this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("programita");
        this.setSize(200, 200);
      this.setLayout(new BorderLayout());
    jp=new panel();
     jb=new JButton("cambiame de color");
      jb.addActionListener(this);
   
      this.add(jp, BorderLayout.CENTER);
     this.add(jb,BorderLayout.SOUTH);
   
 }
 public void actionPerformed(ActionEvent ae) {
   jp.repaint();
 
    }
  }

 class panel extends JPanel{
  boolean cambio;
  panel(){
     this.setSize(100,100);
 }
  //metodo simple que se me ocurrio para cambiar el color
public void calculos(){
   
    if(cambio==true){
        cambio=false;
    }
    else{
        cambio=true;
    }

}

   public void paintComponent(Graphics g) {
      super.paintComponent(g);
 calculos();
       if(cambio==true){
           g.setColor(Color.blue);
       }
       else {
           g.setColor(Color.red);
       }
      g.fillRect(20,20, 40, 40);
   }
 
 }

- esto me funciono pero me quede con la duda de por que no podia llamar algun metodo del jpanel
desde el actionPerformed asi que solo me quedo llamar a repaint en fin es mejor si usas la ayuda de algun ide .