Compositing
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
Rectangle2D rect1 = new Rectangle2D.Double(32,42,200,130);
Rectangle2D rect2 = new Rectangle2D.Double(164,42,100,100);
g2d.setColor(Color.cyan);
g2d.setPaint(loadTextureResource("Cork.jpg"));
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, .5f));