The simplest approach is not to have a custom panel at all, but use JLabel
as the image container. Then you can change the image with:
label.setIcon(new ImageIcon(theNewWeaponImage));
Edit: since it looks like you already have Icons, you can use those directly:
label.setIcon(theNewWeaponIcon);