Colocar um retangulo em volta de um canvas que muda de cor qdo o foco está no canvas

public void paint(Graphics g){
     Rectangle rectangle = canvas.getBounds();
     System.out.println(rectangle);
     g.setColor(Color.red);
     g.drawRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
     canvas.repaint();

E em outro metodo de onMove chamo o esse metodo , mas ele esta me retornando null , desculpa minha ignorancia …mas sera que alguem pode me dar uma ajuda .
Obrigado.

Qual a melhor definição para “canvas”?