Erro = java.lang.IllegalArgumentException: Component must be heavyweigh

Bom dia!

Pessoal ,

preciso carregar uma imagem em um Jpanel

Porem quando tento carregar me da o seguinte erro conforme abaixo

java.lang.IllegalArgumentException: Component must be heavyweigh

segue abaixo uma parte do codigo se alguem puder me ajudar



// Metodo Get de captura 
public HWND getHWnd(Component w) {
HWND hwnd = new HWND();
hwnd.setPointer(Native.getComponentPointer(w));
return hwnd;
}


public BufferedImage DisplayImage(HWND hWnd) {

     System.out.println("hWnd "+hWnd);
        HDC hdcWindow = User32.INSTANCE.GetDC(hWnd);
        HDC hdcMemDC = GDI32.INSTANCE.CreateCompatibleDC(hdcWindow);

        RECT bounds = new RECT();
        Controller.User32Extra.INSTANCE.GetClientRect(hWnd, bounds);

        int width = bounds.right - bounds.left;
        int height = bounds.bottom - bounds.top;

        width = imgW;
        height = imgH;
        
        HBITMAP hBitmap = GDI32.INSTANCE.CreateCompatibleBitmap(hdcWindow, width, height);
        System.out.println("hBitmap = "+hBitmap); 
        
        WinNT.HANDLE hOld = GDI32.INSTANCE.SelectObject(hdcMemDC, hBitmap);
        GDI32Extra.INSTANCE.BitBlt(hdcMemDC, 0, 0, width, height, hdcWindow, 0, 0, WinGDIExtra.SRCCOPY);

        GDI32.INSTANCE.SelectObject(hdcMemDC, hOld);
        GDI32.INSTANCE.DeleteDC(hdcMemDC);

        BITMAPINFO bmi = new BITMAPINFO();
        bmi.bmiHeader.biWidth = width;
        bmi.bmiHeader.biHeight = -height;
        bmi.bmiHeader.biPlanes = 1;
        bmi.bmiHeader.biBitCount = 32;
        bmi.bmiHeader.biCompression = WinGDI.BI_RGB;

        System.out.println("Ver 1 = "+width+"\n"+"Ver 2 = "+ height); 
        Memory buffer = new Memory(width * height * 4);

        GDI32.INSTANCE.GetDIBits(hdcWindow, hBitmap, 0, height, buffer, bmi, WinGDI.DIB_RGB_COLORS);

        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        image.setRGB(0, 0, width, height, buffer.getIntArray(0, width * height), 0, width);

        GDI32.INSTANCE.DeleteObject(hBitmap);
       
        User32.INSTANCE.ReleaseDC(hWnd, hdcWindow);

        return image;

    }


O Metodo acima com o metodo get
Funcao.DisplayImage(Funcao.getHWnd(painel1));

se alguem souber como posso resolver isso e puder me ajudar

grato Att Javax