Manipular elemento Canvas NetBeans

Hola gente de JavaMexico:

Estoy trabajando en un proyecto en NetBeans y he agregado un elemento CANVAS desde el editor de ventanas (gráfico no desde codigo), este canvas lo quiero para mostrar una imagen y agregarle lineas encima (como si de un paint se tratara) pero en la misma ventana tengo algunos botones y objetos extra, es decir quiero tener el canvas solo en el espacio que le estoy delimitando desde el modo grafico.
Mi problema es que ya no se como manipular la funcion paint() de la forma en que he agregado el CANVAS.

He hecho otros proyectos con canvas y han funcionado bien, pero, en los otros proyectos, he sustituido todo el contenido de la ventana por el correspondiente canvas usando algo como:

class can extends Canvas{
  can(){}
 
  @overwrite
  paint(Graphics g){
    g.setColor(Color.Black);
    g.drawRect(100,100,100,100);
  }
}

y en el constructor del JField solo hago:

add(new can());

pero como les dije esto ahorita no me sirve por que solo quiero un pequeño canvas en la ventana junto con otros elementos.

Alguna idea??

Gracias de antemano

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.

Desde el constructor...

 

Si estás utilizando NetBeans, este no permite personalizar el código de inicialización utilizando el Code Customizer como con otros tipos de componentes.

No obstante, desde el constructor podrías hacer algo similar a:

public Ventana() {
    initComponents();
    Canvas canvas = new Canvas() {
        @Override
        public void paint(Graphics g) {
            try {
                BufferedImage img = ImageIO.read(new URL("http://www.javamexico.org/files/zen_logo.png"));
                g.setColor(Color.WHITE);
                g.fillRect(0, 0, img.getWidth(), img.getHeight());
                g.drawImage(img, 0, 0, null);
                g.setColor(Color.RED);
                for (int y = 0; y < img.getHeight(); y += 10) {
                    g.drawLine(0, y, img.getWidth(), y);
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    };
    canvas.setSize(120, 133);
    add(canvas, BorderLayout.CENTER);
    pack();
}

Si este fuera el caso, necesitarás un contenedor para agregar el canvas en la posición deseada.

  

~~~

Muchas gracias My

Muchas gracias My Frrrrrrriend...

Funciona bien.

Saludos!